2
如果嘗試在鎖定語句中排列作業,會出現錯誤。Hangfire:將關鍵部分內的後臺作業排入隊列
lock (lockObj)
{
BackgroundJob.Enqueue(() => MyJob());
}
它抱怨分佈式交易被禁用。但我不希望我的鎖對作業處理產生影響。如果我啓用MSDTC,它會保持鎖定,直到作業處理完成爲止?這與我所需要的相反。
這是不方便移動的鎖塊外BackgroundJob.Enqueue()
電話,因爲這可能是裏面的另一種方法,這使得它很難提取(實際情況要困難得多):
lock (lockObj)
{
MainWork();
AnotherMethod();
MoreWork();
}
private void AnotherMethod()
{
BackgroundJob.Enqueue(() => MyJob());
SomeWork();
}
任何人都可以請建議重構/解決方案我需要在這裏?
不,鎖將被釋放入隊後,完成作業後不 – VMAtm