在Windows服务中处理任务¶

要在Windows服务中开始使用Hangfire,您需要首先将Hangfire包安装到控制台应用程序。因此,使用您的软件包管理器控制台窗口进行安装:

  1. PM> Install-Package Hangfire.Core

然后添加任务存储安装所需的软件包。例如,使用SQL Server:

  1. PM> Install-Package Hangfire.SqlServer

仅需 Hangfire.Core 软件包

请不要为控制台应用安装 Hangfire 软件包,因为它只是一个快速开始的软件包,并且包含了可能不需要的依赖关系(例如 Microsoft.Owin.Host.SystemWeb)。

安装软件包后, 只需新建一个 Hangfire Server 的实例,并像 处理后台任务 一节中所述启动它。因此,打开该Windows服务的源代码文件,并将其修改如下。

  1. using System.ServiceProcess;
  2. using Hangfire;
  3. using Hangfire.SqlServer;
  4.  
  5. namespace WindowsService1
  6. {
  7. public partial class Service1 : ServiceBase
  8. {
  9. private BackgroundJobServer _server;
  10.  
  11. public Service1()
  12. {
  13. InitializeComponent();
  14.  
  15. GlobalConfiguration.Configuration.UseSqlServerStorage("connection_string");
  16. }
  17.  
  18. protected override void OnStart(string[] args)
  19. {
  20. _server = new BackgroundJobServer();
  21. }
  22.  
  23. protected override void OnStop()
  24. {
  25. _server.Dispose();
  26. }
  27. }
  28. }

如果您是.NET项目中的Windows Services新手, 最好是先 google 有关的资料。但为了快速入门,您只需添加一个安装程序并配置它。要执行这些步骤,请返回服务类的设计视图,右键单击它并选择 AddInstaller 菜单项。
Adding installer to Windows Service project
然后构建您的项目,安装Windows服务并运行它。如果失败,请尝试查看您的 Windows Event 事件查看器,了解最新情况。

  1. installutil <yourproject>.exe

原文:

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