Use Hangfire job id in the code

You can set up a filter class like this:

    public class GetJobId : JobFilterAttribute,
        IClientFilter, IServerFilter, IElectStateFilter, IApplyStateFilter
    {
           [ThreadStatic]
            private static string _jobId;
            public static string JobId { get { return _jobId; } set { _jobId = value; } }
            public void OnPerforming(PerformingContext filterContext)
            {
                   _jobId = filterContext.BackgroundJob.Id;
            }
    }

And your method like:

   [GetJobId ()]
   public void SendEmail(string name)
   {
           string jobId = GetJobId.JobId;
   }

Hope this help.

3 Likes