У меня задание Hangfire ставится в очередь следующим образом:
BackgroundJob.Enqueue(() => AnalyzeRequest(request));
Объект request
содержит поле userName
типа строки.Я бы хотел, чтобы запросы анализировались параллельно, если они имеют разные значения в поле userName
, но запросы, принадлежащие одному и тому же пользователю, должны анализироваться один за другим.Поскольку я хотел бы сохранить параллелизм для разных пользовательских запросов, я бы не хотел использовать атрибут DisableConcurrentExecution
.В идеале я хотел бы сделать что-то вроде этого:
[DisableConcurrentExecution(request => request.userName)]
Есть ли какой-нибудь встроенный способ добиться этого?
Спасибо