如何使用 hangfire 循环作业调用另一种方法?
How to call another method using hangfire recurring Job?
我实现了一个方法名GetApiData()
。我想使用 hangfire
重复作业每分钟调用此方法。但是当我调用这个方法时它显示错误
System.ArgumentNullException: Value cannot be null.
Parameter name: method
at Hangfire.Common.Job..ctor(Type type, MethodInfo method, Object[] args)
at Hangfire.Common.Job.FromExpression(LambdaExpression methodCall, Type explicitType)
at Raasforce.Crm.ContactRepositoriesAppService.APIDataBackgroundJob() in E:\RaasforceCorp\RaasforceCorp\aspnet-core\src\Raasforce.Application\Crm\ContactRepositoriesAppService.cs:line 795
at Microsoft.Extensions.Internal.ObjectMethodExecutor.<>c__DisplayClass33_0.<WrapVoidMethod>b__0(Object target, Object[] parameters)
at Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor.VoidResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeActionMethodAsync()
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync()
正确的语法是什么?它显示 运行 时间错误。
public void APIDataBackgroundJob()
{
RecurringJob.AddOrUpdate(()=>GetApiData(),Cron.Minutely);//This line is showing error
}
我认为这可能是由序列化问题引起的。看看这个:.
简短摘要:
尝试将您在 GetApiData()
中使用的所有实例变量作为参数传递给此方法。
你应该这样使用
public void APIDataBackgroundJob()
{
RecurringJob.AddOrUpdate<YourClassContainsThisMethod>(service=>service.GetApiData(),Cron.Minutely);//This line is showing error
}
请注意,您只能使用 public 方法
我实现了一个方法名GetApiData()
。我想使用 hangfire
重复作业每分钟调用此方法。但是当我调用这个方法时它显示错误
System.ArgumentNullException: Value cannot be null.
Parameter name: method
at Hangfire.Common.Job..ctor(Type type, MethodInfo method, Object[] args)
at Hangfire.Common.Job.FromExpression(LambdaExpression methodCall, Type explicitType)
at Raasforce.Crm.ContactRepositoriesAppService.APIDataBackgroundJob() in E:\RaasforceCorp\RaasforceCorp\aspnet-core\src\Raasforce.Application\Crm\ContactRepositoriesAppService.cs:line 795
at Microsoft.Extensions.Internal.ObjectMethodExecutor.<>c__DisplayClass33_0.<WrapVoidMethod>b__0(Object target, Object[] parameters)
at Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor.VoidResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeActionMethodAsync()
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync()
正确的语法是什么?它显示 运行 时间错误。
public void APIDataBackgroundJob()
{
RecurringJob.AddOrUpdate(()=>GetApiData(),Cron.Minutely);//This line is showing error
}
我认为这可能是由序列化问题引起的。看看这个:
简短摘要:
尝试将您在 GetApiData()
中使用的所有实例变量作为参数传递给此方法。
你应该这样使用
public void APIDataBackgroundJob()
{
RecurringJob.AddOrUpdate<YourClassContainsThisMethod>(service=>service.GetApiData(),Cron.Minutely);//This line is showing error
}
请注意,您只能使用 public 方法