Вы можете планировать задачи из вашего проекта ASP.NET с использованием проекта Revalee с открытым исходным кодом.
Revalee - это сервис, который позволяет вам планировать веб-обратные вызовы в своем веб-приложении. В вашем случае вы планируете обратный вызов, который будет синхронизировать ваши данные в определенное время. Revalee отлично работает с задачами, которые являются дискретными транзакционными действиями, такими как обновление некоторых значений базы данных или отправка автоматических сообщений электронной почты (чтение: не долгое время). Код для выполнения вашего действия будет находиться в вашем приложении.
Чтобы использовать Revalee, вы бы:
Установите Revalee службы, службы Windows, на сервере. Служба Windows доступна в исходном коде (который вы должны скомпилировать самостоятельно) в предварительно скомпилированной версии, доступной в Revalee website, или через Chocolatey.
Используйте клиентскую библиотеку Revalee в проекте Visual Studio. (Существует также версия, зависящая от MVC.) Клиентская библиотека доступна в исходном коде (который, опять же, вы компилируете самостоятельно) или в предварительно скомпилированной версии, доступной через NuGet.
Вы бы зарегистрировать будущую функцию обратного вызова, когда ваш код вызывает метод ScheduleReportTransmission()
(этот пример предполагает, что вам нужно ваше действие для запуска 12 часов с этого времени, но это может быть любая дата & время).
Private Sub ScheduleReportTransmission()
Dim callbackTime As DateTimeOffset = DateTimeOffset.Now.AddHours(12.0)
' The callback should be 12 hours from now
Dim callbackUrl As New Uri("http://mywebapp.com/TransmitReport.aspx")
' Register the callback request with the Revalee service
RevaleeRegistrar.ScheduleCallback(callbackTime, callbackUrl)
End Sub
Когда Revalee вызывает приложение обратно, ваше приложение будет выполнять любые действия, которые вы закодировали это сделать. Вы можете сделать это путем добавления метода следующий вызов (TransmitReport()
) на вашу страницу обработчика TransmitReport.aspx
, а-ля:
Private Sub TransmitReport()
' TODO Lookup the report information and send the email
' ...
Return
End Sub
Я надеюсь, что это помогает.
Примечание: Пример кода выше использует синхронную версию ScheduleCallback()
, клиентская библиотека Revalee также поддерживает асинхронные вызовы а-ля:
RevaleeRegistrar.ScheduleCallbackAsync(callbackTime, callbackUrl)
В случае, если это не было ясно, выше, Revalee служба не является внешним Сторонний онлайн-планировщик, но вместо этого служба Windows, которую вы устанавливаете и, полностью контролирует вашу собственную сеть. Он находится и работает на сервере по вашему выбору, скорее всего, на вашем веб-сервере (но это не является обязательным требованием), где он может получать запросы регистрации обратного вызова из вашего приложения ASP.NET.
Отказ от ответственности: Я был одним из разработчиков, участвующих в проекте Revalee. Однако, чтобы быть ясным, Revalee является бесплатным, с открытым исходным кодом. Исходный код доступен по адресу GitHub.
Использование планировщика окон. сделать exe в vb для пожарной почты и запланировать его. –
Вы посмотрели на [Quartz.NET scheduler] (http://www.quartz-scheduler.net/)? –