Способы запланировать задачи (не пишущий планировщик окон) в asp.net

Я в общий хостинг, и они не позволяют мне использовать планировщик окон... Таким образом, каковы способы достигнуть запланированных задач т.е. (синхронизированная почта) в asp.net... Я просто видел фоновый процесс блогом Jeff Atwood... Действительно ли это надежно? Или любые другие способы сделать запланированные задачи...

Затем я нашел quartz.net, но я не могу найти простой пример, который встраивает quartz.net в asp.net (не устанавливая Кварца. Сетевой сервер как автономный сервис окон)... Любое предложение на quartz.net...

6
задан ACP 14 July 2010 в 09:38
поделиться

6 ответов

Я исследовал класс расписания сборки Microsoft.Web.Administration , чтобы добиться того же, но похоже, что класс можно использовать только для планирования перезапуска рабочего процесса IIS, вот пример создания приложения. пулы и установка периодического перезапуска .

Таким образом, единственным способом было запланировать с этим, был перезапуск приложения ASP.NET, а затем в Application_Start выполнение запланированной работы. Но это уродливый взлом, а не решение , поэтому в конце концов я добавил возможности планирования в нашу домашнюю службу резервного копирования Windows, которая уже работала на веб-сервере, поэтому IMO Quartz.net - лучшее решение для вас. Возможно, вам удастся убедить своего веб-провайдера установить Quartz.net, все остальные решения кажутся вам хакерским приемом, который доставит вам больше или меньше проблем.

1
ответ дан 17 December 2019 в 06:59
поделиться

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

Поэтому я использовал объект .NET Application Cache со временем истечения 24 часа.

Cache["DailyTask"] = true;

Затем в классе базовой страницы при каждом запросе страницы я проверял существование этой переменной, и если она существовала, я запускал задачу. Недостатком этого способа является то, что в этом случае вы будете зависеть от наличия запросов страниц в вашем приложении.

И, наконец, еще один способ, который я видел, - установить обратный вызов на истечение срока действия кэша (метод CacheItemRemovedCallback), а затем цепочкой вставить новый элемент в кэш, который также имеет обратный вызов, и так цикл повторяется.

0
ответ дан 17 December 2019 в 06:59
поделиться

Вы можете просто написать страницу ASP.Net, выполняющую вашу задачу, например, отправку писем. Затем использовать онлайновую службу планирования, например SetCronJob, для вызова URL страницы на вашем сервере по расписанию.

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

3
ответ дан 17 December 2019 в 06:59
поделиться

Вы можете взять идею из этого и поместить вашу задачу в метод KeepAlive. Надеюсь! Это поможет.

0
ответ дан 17 December 2019 в 06:59
поделиться

System.Timers.Timer - http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx

запустите его в своем global.asax

0
ответ дан 17 December 2019 в 06:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: