Отдельный сервис для обработки долго выполняющихся задач в ASP.NET - PullRequest
0 голосов
/ 13 января 2011

Я бы хотел сделать службу Windows. всякий раз, когда пользователь моего приложения ASP.NET должен выполнять трудоемкую задачу, IIS передает задачу службе, которая возвращает токен (временное имя для задачи), и в фоновом режиме служба выполняет задачу , В любое время пользователь увидит состояние своей задачи, которая ожидает выполнения в очереди, обрабатывается или завершена. Служба будет выполнять фиксированное количество параллельных заданий и будет хранить очередь для следующих входящих задач. Кроме того, будет доступно приложение WinForms для системного администратора, которое позволит добавлять специальные задачи ADMIn, такие как «Очистка потерянных файлов» или «Архивирование данных неактивных пользователей».

Можете ли вы указать мне на что-то, что может подтолкнуть меня к этой концепции в целом - я знаю, что могу поискать службы для Windows и могу сделать это сам с нуля, но время - это Суть, так что, возможно, вы знаете что-то, что уже есть, и я могу использовать блок для сборки из.

Ответы [ 2 ]

0 голосов
/ 29 июня 2013

Мне бы хотелось получить отзыв о службе, над которой я работал, чтобы запускать / ставить в очередь фоновые задачи. http://sharphooks.net

Это включает в себя реализацию единого метода интерфейса, загрузку ваших файлов через веб-интерфейс, а затем публикацию новых заданий через HTTP POST.

0 голосов
/ 13 января 2011

Простой способ, которым я думаю:

Вы можете использовать таблицу базы данных для выполнения ожидающих задач.
Простая таблица (или несколько ...) со всей необходимой информацией.
Например ID_Task / Name / XML_Object (сериализованный, содержит информацию) / Status
Когда пользователь хочет добавить задачу, в вашей таблице есть строка.

XML_Object будет содержать, например, следующий шаг, который нужно сделать.

Затем вы делаете службу Windows, которая тикает каждые ... 5 или 10 минут и проверяет вашу таблицу.
Если он видит задачу со статусом «Ожидание», он запускает задачу в фоновом режиме и продолжает наблюдать.
И это обновляет статус 'задача на несколько шагов.
Вы можете проверить, не является ли статус тем, который вы ожидаете для каждого шага.

...