.Net длительное запланированное выполнение кода - PullRequest
1 голос
/ 14 января 2011

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

DateTime date = new DateTime(x,x,x,x,x,x);
ScheduledMethod sMethod = new ScheduledMethod(date, [method delegate of some sort]);

\\at the specified date, sMethod invokes [method delegate of some sort]

Я знаю, что могу сделать это с Windows Workflow Foundation как длительный процесс, который хорош для определенных вещей, но есть ли альтернативы? Рабочий процесс не совсем прост с деталями, и было бы неплохо иметь возможность развернуть что-то более простое для легких задач. Примером может служить метод, который проверяет сетевую папку один раз в день и удаляет все файлы, которые старше 30 дней. Я понимаю, что это может быть просто мечтой, но это было бы чрезвычайно полезно для автоматизации определенных повседневных задач по обслуживанию (запланированные операции sql, очистка файловой системы, обычная отправка электронной почты и т. Д.). Это не обязательно должен быть .Net, но это то, откуда я иду. Есть идеи?

Ответы [ 4 ]

3 голосов
/ 14 января 2011

Вы можете развернуть Службу Windows или Запланированное задание Windows .

Также см. этот ТАК вопрос.

3 голосов
/ 14 января 2011

попробуйте планировщик задач Windows. напишите программу на C #, которая выполняет желаемую задачу, а затем запланируйте ее в планировщике задач для запуска с заданными интервалами. для таких вещей, как удаление файлов из папки, это работает очень хорошо.

2 голосов
/ 14 января 2011

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

1 голос
/ 14 января 2011

Microsoft имеет интерфейс планировщика заданий для неуправляемого кода http://msdn.microsoft.com/en-us/library/aa383614(v=VS.85).aspx. Однако, если вам нужна управляемая библиотека, вы можете использовать оболочку для планировщика заданий Microsoft http://www.codeproject.com/KB/cs/tsnewlib.aspx или планировщик заданий предприятия для .NET QuartzNet .

...