From 8a7a300414c78e1878d3ee3b77227901872e5374 Mon Sep 17 00:00:00 2001 From: Lombiq Date: Tue, 9 Jun 2015 14:13:01 +0200 Subject: [PATCH] Fixing that a JobsQueue job re-queuing itself caused a DB deadlock. JobsQueueProcessor is a singleton, so every IDependency it gets injected should be wrapped into Work. --- .../Orchard.JobsQueue/Services/JobsQueueProcessor.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.JobsQueue/Services/JobsQueueProcessor.cs b/src/Orchard.Web/Modules/Orchard.JobsQueue/Services/JobsQueueProcessor.cs index 958ef89d0..dd5ddc633 100644 --- a/src/Orchard.Web/Modules/Orchard.JobsQueue/Services/JobsQueueProcessor.cs +++ b/src/Orchard.Web/Modules/Orchard.JobsQueue/Services/JobsQueueProcessor.cs @@ -15,14 +15,14 @@ namespace Orchard.JobsQueue.Services { private readonly Work _jobsQueueManager; private readonly Work _clock; private readonly Work _taskLeaseService; - private readonly IEventBus _eventBus; + private readonly Work _eventBus; private readonly ReaderWriterLockSlim _rwl = new ReaderWriterLockSlim(); public JobsQueueProcessor( Work clock, Work jobsQueueManager, Work taskLeaseService, - IEventBus eventBus) { + Work eventBus) { _clock = clock; _jobsQueueManager = jobsQueueManager; _taskLeaseService = taskLeaseService; @@ -59,7 +59,7 @@ namespace Orchard.JobsQueue.Services { var payload = JObject.Parse(job.Parameters); var parameters = payload.ToDictionary(); - _eventBus.Notify(job.Message, parameters); + _eventBus.Value.Notify(job.Message, parameters); Logger.Debug("Processed job Id {0}.", job.Id); }