Разработка приложений - Daemon w / WebPage FrontEnd - PullRequest
0 голосов
/ 05 июня 2009

У меня есть приложение, которое сканирует входной каталог каждые пять секунд, и когда задание (т.е. файл) помещается в каталог, приложение читает его, обрабатывает его и выводит другой файл (ы) в выходной каталог.

У меня вопрос: если бы я хотел поместить в это приложение веб-интерфейс, как бы я дождался завершения обработки?

  • Пользователь отправляет задание
  • задание помещено во входной каталог
  • ...... Что я здесь делаю на веб-странице?
  • обработка происходит
  • сгенерирован выходной файл
  • ...... Откуда мне знать, что работа закончена?

Я предложил два решения:

  • каталог вывода опроса каждые x секунд с веб-страницы
  • использовать ajax для опроса веб-службы или веб-страницы, которая сообщает о наличии выходного файла

Есть ли лучший дизайн для сервера? Другими словами, как TCP или Named Pipes могут помочь в этой ситуации? (Невозможно использовать удаленное взаимодействие из-за объекта DCOM.)

Ответы [ 2 ]

0 голосов
/ 05 июня 2009

Коммерческое решение, которое мы делали в прошлом, - это, в основном, демон, записывающий в журнал (обычно в БД), с отметкой даты / времени, о том, что он делает, и веб-интерфейс просто показывает последнее количество X записей из журнал с небольшим переключателем, позволяющим скрыть все сообщения «Посмотрел в каталоге, файл не найден», работал довольно хорошо, позже мы обновили его с помощью AJAX (таймер, который перезагружался каждые 20 секунд).

0 голосов
/ 05 июня 2009

Я не думаю, что Named Pipes облегчит автоматический опрос веб-клиента, но это может помочь серверу лучше уведомить другой процесс о завершении преобразования - и в конечном итоге поставить в очередь сообщение в веб-браузер.

Вы можете попробовать проводить опрос веб-клиента каждые несколько секунд, чтобы увидеть, завершился ли файловый процесс, или же вы можете получить что-то наподобие джаггернаутских «выталкивающих» команд на страницу. Джаггернаут использует Flash для открытия сокета в веб-браузере, который постоянно передает JavaScript с сервера. Он может быть ответственным за отправку команды, чтобы предупредить браузер, что файл завершен, а затем выполнить перенаправление.

...