在代码中使用Hangfire作业ID

时间:2016-11-04 04:58:59

标签: c# jobs hangfire

我正在进行这样的Fire-and-Forget方法调用。

BackgroundJob.Enqueue(() => SendEmail(name));

我想将作业ID传递给SendEmail()方法并在方法中使用它。

2 个答案:

答案 0 :(得分:3)

简单的方法是添加

  

PerformContext

到工作方法: Hangfire论坛主题Use Hangfire job id in the code

答案 1 :(得分:1)

SendEmail方法更改为这样......

public void SendEmail(string name, string jobId)
{ 
//Body of method
}

将Hangfire通话更改为这样......

BackgroundJob.Enqueue((string jobId) => SendEmail(name, jobId));

除非您正在寻找工作,并发送完整的电子邮件,否则您可能需要执行以下操作...

  var jobId = BackgroundJob.Enqueue(() => TaskToRun);
  BackgroundJob.ContinueWith(jobId, () => SendEmail(name, jobId));