Asp.net-Mvc

Hangfire 每天在特定時間重複工作

  • March 8, 2022

我正在嘗試每天上午 9 點執行hangfire 重複作業。這就是我想做的-

RecurringJob.AddOrUpdate(() => MyMethod(), "* 9 * * *");

我應該把這行程式碼放在哪裡?

對不起,如果這是一個愚蠢的問題。

假設您正在使用.Net Core,您可以在哪裡找到該文件startup.cs。在那裡你可以找到一種Configure()方法。在該方法中,您可以在之後使用那條線,用於配置 hangfire 儀表板app.UseHangfireDashboard()app.UseHangfireServer()這是可選的。不要忘記使用可以在其本身中找到的方法註冊 Hangfire 服務。ConfigureServices()``startup.cs

您可以在Startup.cs註冊 Hangfire 服務ConfigureServices()

   public void ConfigureServices(IServiceCollection services)
   {    
   /*
   other services
   */

   services.AddHangfire(x => x.UseSqlServerStorage("YOUR_HangfireServerConnectionString"));

   /*
   services.AddMvc()
   */
   }

您可以在Startup.cs設置 Hangfire CronConfigure()

public void Configure(IApplicationBuilder app)
{
   app.UseHangfireDashboard();  
   app.UseHangfireServer();
   RecurringJob.AddOrUpdate(() => MyMethod(), "* 9 * * *");
}

更多請參考連結

更新

cron 表達式* 9 * * *表示作業將在系統時間UTC 時間的 9(24 小時格式)後每分鐘觸發一次。

要在每天上午 9 點創建重複作業,表達式應0 9 * * *參考此處的cron 表達式

引用自:https://stackoverflow.com/questions/49627893