Kast2k Posted December 7, 2018 Share Posted December 7, 2018 Добрый день! Есть ЕХЕ файл на сервере, при его запуске с параметрами происходит формирование графического файла заданного формата. Вопрос: Как правильно реализовать на Unigui следующий процесс: 1. Пользователь через UniFileUpload загружает документ на сервер 2. Ссылка на данный документ транслируется в ServerModule и он в свою очередь создает, запускает и добавляет в ThreadList поток для обработки файла. Внутри потока формируется строка параметров обработки и выполняется EXE файл с ожиданием окончания обработки. Далее, получившийся файл копируется во временную папку Unigui и отправляется обратно пользователю для скачивания. Имеет ли такая идея право на жизнь или необходимо как-то по другому построить процесс взаимодействия? (ServerModule = singleton) Спасибо. Quote Link to comment Share on other sites More sharing options...
stas Posted December 7, 2018 Share Posted December 7, 2018 Сам по себе файл не отправится Варианты 1) Таймер 2) Long Poll 3) WebSocket Наиболее просто для разработчика таймер Quote Link to comment Share on other sites More sharing options...
Tokay Posted December 7, 2018 Share Posted December 7, 2018 топикстартеру: что именно вызывает затруднение? послать файл юзеру можно, например, с помощью UniSession.SendFile. прямо из потока, правда, не получится. но можно сделать какой-то флаг, что файл для посылки готов, его проверять по юзерскому таймеру (TUniTimer), и как файл 'созрел', кинуть его юзеру. Quote Link to comment Share on other sites More sharing options...
Kast2k Posted December 7, 2018 Author Share Posted December 7, 2018 Особых затруднений нет, кроме того, сможет ли сервис (Server Module) создавать потоки и не приведет ли это к внезапной остановке приложения на пустом месте с отсутствием каких-либо ошибок, как уже бывало ранее (пример, на страничке находится разноцветный UniDBGrid, обновление данных по таймеру (3000 мс), компоненты FD в DataModule, никаких действий больше в программе нет. Скомпилирован в Windows Service - > может самопроивзольно зависнуть при просадке сети. При этом ни в Event Log, ни в логах приложения ни слова = просто висит и на него не зайти). Спасибо за комментарии, я примерно так и хотел реализовывать. Quote Link to comment Share on other sites More sharing options...
stas Posted December 7, 2018 Share Posted December 7, 2018 Вы не можете отправить файл, пока его не попросили, работа с вебсервером ведётся в режиме вопрос ответ, потому и виснет Quote Link to comment Share on other sites More sharing options...
Kast2k Posted December 7, 2018 Author Share Posted December 7, 2018 20 minutes ago, stas said: Вы не можете отправить файл, пока его не попросили, работа с вебсервером ведётся в режиме вопрос ответ, потому и виснет Вы меня видимо не совсем так поняли я привёл пример простейшего приложения по опросу БД по таймеру, которое у меня подвисает, хотя все Exceptions по работе с БД прописаны Quote Link to comment Share on other sites More sharing options...
Tokay Posted December 7, 2018 Share Posted December 7, 2018 С TUniTimer всё должно работать. Quote Link to comment Share on other sites More sharing options...
Tokay Posted December 7, 2018 Share Posted December 7, 2018 fix. Quote Link to comment Share on other sites More sharing options...
stas Posted December 8, 2018 Share Posted December 8, 2018 А почему у Вас threadtimer, должен быть обычный а в потоке давайте uniservermodule какой-то флаг, а в таймере его проверяйте У меня так телеграмовский бот работает Quote Link to comment Share on other sites More sharing options...
Tokay Posted December 8, 2018 Share Posted December 8, 2018 fix Quote Link to comment Share on other sites More sharing options...
stas Posted December 8, 2018 Share Posted December 8, 2018 Я имею в виду TUniTimer, Только он должен лежать на форме Quote Link to comment Share on other sites More sharing options...
Tokay Posted December 8, 2018 Share Posted December 8, 2018 да, так и есть. видимо я случайно серверный таймер использовал. с TUniTimer всё отлично работает! Quote Link to comment Share on other sites More sharing options...
stas Posted December 8, 2018 Share Posted December 8, 2018 Рад, если будут вопросы, обращайтесь, я с унигуи ещё с тех времён, когда Фаршад в ньюсах публиковал информацию (сайта не было) Quote Link to comment Share on other sites More sharing options...
stas Posted December 8, 2018 Share Posted December 8, 2018 Добрый вечер, у меня нет такого компонента, извините. Как Вы собираетесь это делать? Средствами ИИС у вас не получится, только нгинкс. Quote Link to comment Share on other sites More sharing options...
stas Posted December 8, 2018 Share Posted December 8, 2018 Я когда-то делал чат на вебсокетах фаршадовской библиотекой, поищу на днях попытаюсь прикрепить пример, пока найти не могу, простите Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.