2010-06-28 2 views
1

Я создаю систему, в которой пользователи могут настраивать рассылки, чтобы выходить в определенное время. Прежде чем я захотел получить совет. Во-первых, уже есть компонент .Net, который будет обрабатывать задания на планирование (либо запускать другое приложение, либо вызывать URL-адрес), который будет делать то, что я предлагаю (Open Source будет круто)? Если этого не происходит, лучше ли планировать задание в SQL и запускать какой-то скрипт, создать службу .Net, которая будет искать xml-файл или db для расписаний или создать приложение для запланированных задач? Там может быть много задач, поэтому я думаю, что создание запланированных задач или SQL-заданий может быть не очень хорошей идеей. Здесь может быть типичный сценарий; пользователь хочет отправить информационный бюллетень своим клиентам. Пользователь создает бюллетень в субботу, но не хочет, чтобы он вышел до понедельника. Пользователь хочет, чтобы та же электронная почта выходила каждый понедельник в течение месяца. Спасибо, что посмотрели!Планирование задач Советы? .Net, SQL Job?

ответ

1

Заканчивать Quartz.NET

Quartz.NET является полнофункциональной открытой источником системы планирования работы, которая может быть использована от маленьких до больших приложений систем масштаба предприятия.

1

Если вы хотите использовать легкодоступные услуги в самой Windows, проверить эту статью A New Task Scheduler Task Library на CodeProject о том, как создать scheuled задач в Windows, из приложения C#.

У вас, вероятно, больше гибкости и мощности, если вы используете C# и запланированные задачи в Windows, а не ограничиваете себя тем, что можно сделать на SQL Server. Работа агента SQL Server отлично - для конкретных баз данных, в основном - планов обслуживания и т. Д.

1

Вы можете создать свой собственный сервис Windows, который планирует и выполняет задания. Обязательно сделайте хорошие абстракции. В аналогичном проекте я использовал абстракцию, в которой элементы планирования абстрагируются как Джобс, состоящий из задач. Например, отправка информационного бюллетеня может быть заданием, тогда как рассылка информационного бюллетеня каждому абоненту может рассматриваться как задача. Затем вам нужно запустить задание и задачи в определенных моделях потоков, используя потоки Threadpool или параллельную библиотеку задач. Обязательно используйте асинхронный API для ввода-вывода, когда это возможно. Также отделите свою логику планирования от абстракций. так что логика планирования может выполнять произвольные типы заданий и его включенные задачи.

Смежные вопросы