Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NETCore中hangfire重复作业的入口点_C#_Asp.net Core_Hangfire - Fatal编程技术网

C# .NETCore中hangfire重复作业的入口点

C# .NETCore中hangfire重复作业的入口点,c#,asp.net-core,hangfire,C#,Asp.net Core,Hangfire,在服务层有一个方法,我们需要使用HangFire定期调用它,所以,问题是,在asp.net核心中实现重复作业的最佳位置在哪里 如果在startup.cs中是最好的,我们如何处理该方法在startup.cs中需要的所有依赖关系 我试过这个: RecurringJob.AddOrUpdate("FixOrderJob", () => Job.FromExpression<IOrderFixerService>(x => x.FixUnknownOrder()), Cron.M

在服务层有一个方法,我们需要使用HangFire定期调用它,所以,问题是,在asp.net核心中实现
重复作业
的最佳位置在哪里

如果在startup.cs中是最好的,我们如何处理该方法在startup.cs中需要的所有依赖关系

我试过这个:

RecurringJob.AddOrUpdate("FixOrderJob", () => Job.FromExpression<IOrderFixerService>(x => x.FixUnknownOrder()), Cron.MinuteInterval(5));

如果你想用hangfire运行一个循环作业,最好的开始位置之一是在startup类中

基于hagnfire,
RecurringJob
类是
RecurringJobManager
类的门面。因此,只需将IRecurringJobManager作为参数插入,并在此处配置作业:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IRecurringJobManager recurringJobs)
   {
       //Access To HangFire dashboard : http://app_hostname/hangfire
        app.UseHangfireDashboard();
        app.UseHangfireServer();
       //....
       //....
       app.UseMvc(); 
       //....
       //....
       recurringJobs.AddOrUpdate("FixOrderJob", Job.FromExpression<IOrderFixerService>(x => x.FixLatestUnknownOrder()), Cron.MinuteInterval(1));
    }
public void配置(IApplicationBuilder应用程序、IHostingEnvironment环境、iLogger工厂日志、IRecurringJobManager重复作业)
{
//进入HangFire仪表板:http://app_hostname/hangfire
app.UseHangfireDashboard();
app.UseHangfireServer();
//....
//....
app.UseMvc();
//....
//....
recurringJobs.AddOrUpdate(“FixOrderJob”,Job.FromExpression(x=>x.FixLatestUnknownOrder()),Cron.MinuteInterval(1));
}

您到底有什么问题<代码>配置在构建IoC/DI容器后被调用,因此解析可用。但是,服务的范围各不相同,当您从应用程序容器解析服务时,服务实际上变成了单例(在较新的ASP.NET核心版本中,当您尝试从应用程序服务提供程序解析范围服务时,它应该引发异常)。您必须在每个作业调用的基础上解决依赖关系(不知道是否/如何在Hangfire中实现,但没有使用它)。但是上面的错误消息与依赖性问题无关
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IRecurringJobManager recurringJobs)
   {
       //Access To HangFire dashboard : http://app_hostname/hangfire
        app.UseHangfireDashboard();
        app.UseHangfireServer();
       //....
       //....
       app.UseMvc(); 
       //....
       //....
       recurringJobs.AddOrUpdate("FixOrderJob", Job.FromExpression<IOrderFixerService>(x => x.FixLatestUnknownOrder()), Cron.MinuteInterval(1));
    }