处理后台任务¶

Hangfire Server 负责处理后台任务。Hangfire Server 不依赖于ASP.NET,可以从任何应用中启动,从控制台应用程序到Microsoft Azure Worker Role。所有应用程序的单一API通过 BackgroundJobServer 类公开:

  1. // 创建一个Hangfire Server实例并启动它。
  2. // 请查看高级选项
  3. // 显式实现任务存储的实例
  4. var server = new BackgroundJobServer();
  5.  
  6. // 等待服务器正常关机。
  7. server.Dispose();

始终释放您的后台任务服务器

尽可能调用 Dispose 方法以便正常地关闭服务器。

Hangfire Server 由不同的组件组成,负责不同的工作: workers 监听队列和处理任务, recurring scheduler 入队周期任务, schedule poller 入队延迟任务, expire manager 删除过时的任务并保持存储尽可能干净。

您可以不处理

如果您不想在特定应用程序实例中处理后台作业,请不要创建 BackgroundJobServer 的实例。

Dispose 是一个 阻塞 的方法,它会等到所有组件就绪(例如,worker 还在将中断的任务置于队列中)后关闭 。所以我们可以在等待所有的组件就绪后关闭服务器。

严格来说,您不需要调用 Dispose 方法。Hangfire甚至可以处理意外的进程终止,并将自动重试中断的任务。但是最好通过使用 取消令牌 来取消任务。

原文:

http://hangfirezh.zhs.press/background-processing/processing-background-jobs.html