job scheduling framework

Hangfire

基本說明

  • Job Schedulling 的第三方元件
  • open source
  • 可應用於商業用途
  • 支援ASP.NET系列產品

安裝及設定方式

  • 使用Nuget安裝HangFire
  • 新增 Startup.cs
using Hangfire;
using Microsoft.Owin;
using Owin;
using System;
using testBackgroundTask.Jobs;

[assembly: OwinStartupAttribute(typeof(testBackgroundTask.Startup))]

namespace testBackgroundTask
{

    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            //ConfigureAuth(app);

            GlobalConfiguration.Configuration
                .UseSqlServerStorage("Data Source=XXX;Initial Catalog=XXXX; Persist Security Info = True; User ID=sa");
            //Server = devoadb05;Database=devIoTCenter;Integrated Security=SSPI;user id=sa;

            //BackgroundJob.Enqueue(() => Console.WriteLine("Fire-and-forget!"));

            SummaryData job1 = new SummaryData();

            RecurringJob.AddOrUpdate(() => job1.Handle(), Cron.Minutely);
            app.UseHangfireDashboard();
            app.UseHangfireServer();
        }
    }

}

註:第一次執行,HangFire會自動生成Table Schema

監控報表

在網址最後加上,/hangfire/

部署注意事項

  • 新增Application pool
  • 指定該App pool 的 Start Mode 為 AlwaysRunning
  • 新增APP站台
  • 指定該站台使用該App pool
  • 指定該站台的Preload Enable 為true

Useful resources

results matching ""

    No results matching ""