что использовать для повторяющихся (ежедневных, еженедельных, ежемесячных) задач? Рабочие процессы, службы Windows, что-то еще? - PullRequest
1 голос
/ 28 апреля 2010

Я некоторое время писал службы Windows, и кажется, что они всегда хорошо работают для вещей, которые должны запускаться каждый день, несколько раз в неделю, раз в месяц и т. Д., Но в последнее время я думал о том, чтобы Windows Workflow Foundation.

Однако я не уверен, как они будут работать на сервере без какого-либо контейнерного приложения (например, SharePoint)? Я работал с рабочими процессами Sharepoint и раньше, и у меня всегда были огромные проблемы, сначала с ошибками в реализации архитектуры рабочих процессов (проблемы со сном и задержкой), а позже, когда они в конечном итоге начали работать, ими было трудно управлять и изменять.

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

Что вы рекомендуете? Пожалуйста, имейте в виду, что мы работаем в .NET (с версией проблем нет, если 4.0 приносит что-то новое по этому вопросу, мы можем использовать это).

Ответы [ 2 ]

4 голосов
/ 28 апреля 2010

Посмотрели ли вы запланированные задачи Windows? Это не ново, но позволяет создавать приложения, которые можно запускать в определенные даты / время. Планировщик предоставляет множество настроек, аналогичных службам Windows. MSDN Артикул

0 голосов
/ 24 сентября 2010

Мы часто выбираем использование службы Windows. Для повторяющихся и запланированных задач мы используем библиотеку Quartz.Net . Когда эти задачи являются длительными операциями блокировки, мы также включаем библиотеку SmartThreadPool . Мы разрешили Quartz создать задание и поместили его в SmartThreadPool для выполнения (потому что мы столкнулись с ошибками триггера с ошибками при выполнении длительных заданий в Quartz, а также потому, что иногда мы хотим разделить разные типы заданий на разные пулы потоков для выполнения).

...