编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

ABP vNext框架文档解读22-Hangfire后台作业

wxchong 2024-07-05 01:52:23 开源技术 21 ℃ 0 评论

Hangfire是一个高级的后台作业管理. 你可以用ABP框架集成Hangfire代替默认后台作业管理. 通过这种方式你可以使用相同的后台作业API,将你的代码独立于Hangfire. 如果你喜欢也可以直接使用Hangfire的API.

使用ABP CLI安装

在项目的文件夹(.csproj文件)中打开命令行窗口输入以下命令:

abp add-package Volo.Abp.BackgroundJobs.HangFire

手动安装

  1. 添加 Volo.Abp.BackgroundJobs.HangFire NuGet包添加到你的项目:
Install-Package Volo.Abp.BackgroundJobs.HangFire
  1. 添加 AbpBackgroundJobsHangfireModule 到你的模块的依赖列表:
[DependsOn(
    //...other dependencies
    typeof(AbpBackgroundJobsHangfireModule) //Add the new module dependency
    )]
public class YourModule : AbpModule
{
}

配置

你可以安装任何Hangfire存储. 最常用的是SQL Server(参阅Hangfire.SqlServer NuGet包).

当你安装NuGet包后,你需要为你的项目配置Hangfire.

1.首先, 我们需要更改 Module 类 (例如: <YourProjectName>HttpApiHostModule) 的 ConfigureServices 方法去配置Hangfire存储和连接字符串:

  public override void ConfigureServices(ServiceConfigurationContext context)
  {
      var configuration = context.Services.GetConfiguration();
      var hostingEnvironment = context.Services.GetHostingEnvironment();

      //... other configarations.

      ConfigureHangfire(context, configuration);
  }

  private void ConfigureHangfire(ServiceConfigurationContext context, IConfiguration configuration)
  {
      context.Services.AddHangfire(config =>
      {
          config.UseSqlServerStorage(configuration.GetConnectionString("Default"));
      });
  }
  1. 如果你想要使用Hangfire的面板,你可以在 Module 类的 OnApplicationInitialization 方法添加: UseHangfireDashboard
 public override void OnApplicationInitialization(ApplicationInitializationContext context)
 {
    var app = context.GetApplicationBuilder();

    // ... others

    app.UseHangfireDashboard();
 }

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表