Skip to content

Commit 66b6e45

Browse files
Wait until lock will be postponed
1 parent 018b9e9 commit 66b6e45

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/WorkflowCore/Services/BackgroundTasks/WorkflowConsumer.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,19 @@ private async Task SubscribeEvent(EventSubscription subscription, IPersistencePr
8989
if (subscription.EventName != Event.EventTypeActivity)
9090
{
9191
var events = await persistenceStore.GetEvents(subscription.EventName, subscription.EventKey, subscription.SubscribeAsOf, cancellationToken);
92+
9293
foreach (var evt in events)
9394
{
95+
var locked = await _lockProvider.AcquireLock($"evt:{evt}", cancellationToken);
96+
int attempt = 0;
97+
while (locked && attempt < 10)
98+
{
99+
locked = await _lockProvider.AcquireLock($"evt:{evt}", cancellationToken);
100+
await Task.Delay(Options.IdleTime);
101+
102+
attempt++;
103+
}
104+
94105
await persistenceStore.MarkEventUnprocessed(evt, cancellationToken);
95106
await QueueProvider.QueueWork(evt, QueueType.Event);
96107
}

0 commit comments

Comments
 (0)