Я использую Hangfire для запуска операции поиска базы данных в качестве фонового задания.Hangfire: как изолировать работу условно
Эта операция должна произойти только один раз и может запускаться несколькими способами. (например, в пользовательском интерфейсе, когда пользователь перетаскивает и опускает инструмент, мне нужно запустить это задание в фоновом режиме. Но если другой инструмент перетаскивается и отбрасывается, я не хочу запускать фоновое задание, поскольку оно уже предварительно загружено из база данных).
Это то, что мой код выглядит сейчас:
var jobId = BackgroundJob.Enqueue<BackgroundModelHelper>((x) => x.PreFetchBillingByTimePeriods(organizationId));
То, что я хочу, это какой-то проверки, прежде чем я исполняю выше заявление, чтобы найти, если фоновая работа уже уволен; если да, то не запускайте другую, а если нет, то ставьте в очередь.
, например:
bool prefetchIsFired = false;
// find out if a background job has already been fired. If yes, set prefetchIsFired to true.
if (!prefetchIsFired)
var jobId = BackgroundJob.Enqueue<BackgroundModelHelper>((x) => x.PreFetchBillingByTimePeriods(organizationId, null));
если имя задания будет автоматически переопределяет предыдущий с тем же именем –