У меня есть ситуация, когда у меня есть повторяющаяся задача hangfire, а для целей отладки/ведения журнала я хочу получить доступ к идентификатору этой задачи.получить идентификатор задачи для возвращаемого задания hangfire внутри самой задачи
мой код, чтобы создать/зарегистрировать задача заключается в следующем:
RecurringJob.AddOrUpdate(Environment.MachineName,() => MyTask(), Cron.MinuteInterval(_delay));
и код для выполнения Мне нужно войти идентификатор задачи (который является именем машины, но, очевидно, в ферме серверов там будет одна задача зарегистрирована для каждого сервера)
Как получить доступ к идентификатору задачи, которая выполняется при выполнении действия, которое выполняется?
public void MyTask()
{
var taskId = GetTheHangfireTaskIdThatTriggeredThis(); //this is the code I need
Debug.WriteLine(taskId);
}
В конце концов, я хочу, чтобы убедиться, что задачи, работать только на сервере, зарегистрированном их как мне нужно задание выполнить на каждом сервере в ферме (это обновить локальный кэш на самом сервере от а центральное расположение). Если есть лучший способ добиться этого, тогда также, пожалуйста, сообщите мне.
Почему наклоняю вы просто отправить MachineName к методу MyTask()? – helgeheldre
@helgehedre да, вы можете, спасибо, я не исследовал идею передачи параметра в задачу – MikeW