0

Мое требование - планировать отчеты в определенное время и частоту, то есть еженедельно, ежемесячно или ежедневно.Планирование заданий в Vb.net

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

Заранее спасибо

+1

Использование планировщика окон. сделать exe в vb для пожарной почты и запланировать его. –

+0

Вы посмотрели на [Quartz.NET scheduler] (http://www.quartz-scheduler.net/)? –

ответ

2

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

http://hangfire.io/

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

Для других альтернатив взглянуть на эту запись в блоге на Hanselman: http://www.hanselman.com/blog/HowToRunBackgroundTasksInASPNET.aspx

+0

У меня есть alredy попробовал это. Но не совместим с моей каркасом .. Пожалуйста, предложите другой способ –

+0

Какова ваша структура? Почему это не совместимо? – mga911

0

Вы можете планировать задачи из вашего проекта ASP.NET с использованием проекта Revalee с открытым исходным кодом.

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

Чтобы использовать Revalee, вы бы:

  1. Установите Revalee службы, службы Windows, на сервере. Служба Windows доступна в исходном коде (который вы должны скомпилировать самостоятельно) в предварительно скомпилированной версии, доступной в Revalee website, или через Chocolatey.

  2. Используйте клиентскую библиотеку Revalee в проекте Visual Studio. (Существует также версия, зависящая от MVC.) Клиентская библиотека доступна в исходном коде (который, опять же, вы компилируете самостоятельно) или в предварительно скомпилированной версии, доступной через NuGet.

  3. Вы бы зарегистрировать будущую функцию обратного вызова, когда ваш код вызывает метод 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 
    
  4. Когда 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.

Смежные вопросы