Создание долгосрочной ночной задачи в .NET 3.5 для использования в Windows Server 2008 - PullRequest
0 голосов
/ 01 декабря 2009

У меня есть длительная задача, требующая большого объема вычислений и дисков, которая должна выполняться ночью на Windows Server 2008; Мой выбор фреймворка .NET 3.5 sp1. Существует вероятность того, что эта задача может завершиться ошибкой по ряду причин (например, из-за недостатка места на диске), и я хотел бы убедиться, что ошибки обрабатываются и сообщаются разумно. Кроме того, для выполнения этой задачи потребуется разрешение на такие вещи, как создание соединения с базой данных и чтение / запись в файловую систему. Какие варианты доступны для выполнения таких вещей?

Изменить: Мой вопрос больше о том, использовать ли расписание Windows или какой-либо другой механизм, чтобы начать процесс.

Ответы [ 5 ]

2 голосов
/ 01 декабря 2009

Создание консольного приложения. Внутри метода main () поместите try-catch и используйте SmtpClient для отправки уведомлений о необработанных исключениях. Скомпилируйте его и добавьте запись для запуска с помощью апплета Scheduled Task.

1 голос
/ 02 декабря 2009

Два слова ... обработка исключений

Еще одно слово ... logging

В дополнение ко всем другим очень здравым советам, предлагаемым другими здесь, если это длительный процесс для запуска без присмотра, я бы уделил дополнительное внимание тому, как вы обрабатываете исключения и как вы регистрируете их / сообщаете о них, чтобы Вы знаете, что что-то пошло не так, и у вас достаточно информации, чтобы исправить проблему.

1 голос
/ 01 декабря 2009

Звучит так, будто это просто стандартное консольное приложение, которое должно запускаться по расписанию (задачи Windows Scheduled) и требовать простых возможностей ведения журналов / отчетов и связи и, возможно, некоторого linq2sql для операций db crud.

Честно говоря, на данный момент кажется, что ваши варианты широко открыты.

0 голосов
/ 01 декабря 2009

Код это .... В чем вопрос? Создайте хороший твердый код, который обрабатывает все, и у вас будет ваша задача. вы можете сделать из него службу и попросить Windows перезапустить ее, если не получится, или просто обернуть ее в бесконечный цикл с помощью команды try / catch all, но позаботиться о вещах, которые, если их не исправить, не стоит продолжать .... *

0 голосов
/ 01 декабря 2009

У вас есть более конкретные вопросы? Все это вполне выполнимо. Вы можете перехватывать и регистрировать исключения в файле журнала и отправлять результаты по почте с помощью SMTP. Вы также можете установить соединение с базой данных, что очень просто. Есть ли у вас какие-то проблемы, с которыми мы могли бы помочь?

Вы можете использовать планировщик Windows, чтобы настроить это приложение, например, задание для запуска в определенное время или в определенное время и т. Д.

...