Вверх ↑
Ответов: 655
Рейтинг: 18
#1: 2016-12-15 21:05:21 ЛС | профиль | цитата
Задача такая: обрабатывать данные от клиентов (браузеры) на сервере (генерация HTML из данных БД и конвертация HTML в PDF + по мелочи)

Как это вижу я:
TCP сервер принимает подключение, мы не знаем какую операцию запросит клиент (вдруг потребуется отчет за 4 месяца в PDF или какая-то сложная выборка в БД), т.к. операция может занять условно продолжительное время мы запускаем "пулл" - некое фоновое приложение которое в отдельном потоке займется обработкой запроса клиента/нескольких клиентов.
Приложение что-то там выполняет клиент в это время ожидает (скрипт страницы раз в сек спрашивает готов или не готов результат)..как только приложение завершит обработку данных, выгрузит готовый PDF или HTML, сообщит TCP серверу что для клиента N все готово, после чего сервер уже выдаст результат браузеру.
Далее фоновое приложение убивается.
В виду того что количество клиентов, собственно как и требуемых для них "пуллов" не известно, то фоновое приложение придется подгружать по мере подключения клиентов, подгружать имеется в виду запускать через winexec...а каждый запуск приложения - чтение файла с диска, вот чтобы не тратить время на IO диска я планирую разместить приложение в ram диске для быстрого чтения.
карма: 0

0