Как я могу запустить мой оконный сервис в указанные дни недели - PullRequest
0 голосов
/ 30 июля 2011

как сделать так, чтобы моя оконная служба работала только в указанные дни

Пример: моя служба Windows должна быть запущена ПОНЕДЕЛЬНИК - ПЯТНИЦА, остальные СУББОТЫ и ВОСКРЕСЕНЬЕ динамически СЕРВИСЫ должны быть остановлены

Может ли кто-нибудь помочь мне с этой частью, как это сделать ... >>>

Ответы [ 6 ]

4 голосов
/ 30 июля 2011

Вы должны использовать планировщик окон

См. Это http://www.sourcedaddy.com/windows-7/scheduling-the-task-scheduler.html Если вы хотите знать, как

1 голос
/ 30 июля 2011

Если вы действительно хотите выполнить это в службе Windows, вам следует настроить объект System.Threading.Timer с обратным вызовом, который подтверждает ваши временные рамки.

Таймер можно настроить на запуск каждые 24 часа (86 400секунд)

protected override void OnStart(string[] args)
{
    // this will start a timer when your service starts
    // the 3rd argument will run DoStuff(object) immediately and again in 24 hours
    timer = new System.Threading.Timer(new System.Threading.TimerCallback(DoStuff), null, 0, 86400 * 1000);
}

Затем в обратном вызове DoStuff проверьте время, день и т. д.

public static void DoStuff(object objectState)
{
    DateTime now = DateTime.Now;
    if(now.DayOfWeek != DayOfWeek.Saturday && now.DayOfWeek != DayOfWeek.Sunday)
    {
        // do some stuff
    }
}
1 голос
/ 30 июля 2011

Я использую Quartz.Net в производстве, и я доволен простотой использования и надежностью. По сути, вы могли бы позволить вашей службе работать непрерывно, но вызывать конкретные задачи в службе, настроенной по расписанию, по вашему вкусу.

0 голосов
/ 30 июля 2011

@ pravz, почему вы продолжаете спрашивать о коде позади?Это приложение ASP.NET?Если это так, я думаю, вам следует переписать свой вопрос с этой информацией и сделать репост.Пока что для меня это не похоже на то, что вы на самом деле используете сервис.Если вы хотите, чтобы служба работала таким образом, лучше всего написать ее в коде, как было предложено ранее.Если бы это было просто консольное приложение, я бы добавил его в список запланированных задач.

0 голосов
/ 30 июля 2011

Перемещение логики в простое приложение и вызов ее с помощью запланированной задачи Windows.

0 голосов
/ 30 июля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...