Skip to content

Commit cf25332

Browse files
author
Eddie Wood
committed
Change MaxConcurrentItems to MaxConcurrentWorkflows. Make feature specific to WorkflowConsumer only.
1 parent a3e37f5 commit cf25332

File tree

4 files changed

+10
-8
lines changed

4 files changed

+10
-8
lines changed

src/WorkflowCore/Models/WorkflowOptions.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace WorkflowCore.Models
88
{
99
public class WorkflowOptions
1010
{
11-
internal static readonly int MinimumNumberOfConcurrentItems = 2;
11+
internal static readonly int MinimumNumberOfConcurrentWorkflows = 2;
1212

1313
internal Func<IServiceProvider, IPersistenceProvider> PersistanceFactory;
1414
internal Func<IServiceProvider, IQueueProvider> QueueFactory;
@@ -18,7 +18,7 @@ public class WorkflowOptions
1818
internal TimeSpan PollInterval;
1919
internal TimeSpan IdleTime;
2020
internal TimeSpan ErrorRetryInterval;
21-
internal int? MaxConcurrentItems;
21+
internal int? MaxConcurrentWorkflows;
2222

2323
public IServiceCollection Services { get; private set; }
2424

@@ -71,14 +71,14 @@ public void UseErrorRetryInterval(TimeSpan interval)
7171
ErrorRetryInterval = interval;
7272
}
7373

74-
public void UseMaxConcurrentItems(int? maxConcurrentItems)
74+
public void UseMaxConcurrentWorkflows(int? maxConcurrentWorkflows)
7575
{
76-
if (maxConcurrentItems.HasValue && maxConcurrentItems.Value < MinimumNumberOfConcurrentItems)
76+
if (maxConcurrentWorkflows.HasValue && maxConcurrentWorkflows.Value < MinimumNumberOfConcurrentWorkflows)
7777
{
78-
throw new ArgumentOutOfRangeException($"If {nameof(maxConcurrentItems)} is specified, it cannot be less than ${MinimumNumberOfConcurrentItems}.");
78+
throw new ArgumentOutOfRangeException($"If {nameof(maxConcurrentWorkflows)} is specified, it cannot be less than ${MinimumNumberOfConcurrentWorkflows}.");
7979
}
8080

81-
MaxConcurrentItems = maxConcurrentItems;
81+
MaxConcurrentWorkflows = maxConcurrentWorkflows;
8282
}
8383
}
8484

src/WorkflowCore/Services/BackgroundTasks/EventConsumer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ internal class EventConsumer : QueueConsumer, IBackgroundTask
1313
private readonly IPersistenceProvider _persistenceStore;
1414
private readonly IDistributedLockProvider _lockProvider;
1515
private readonly IDateTimeProvider _datetimeProvider;
16-
protected override int MaxConcurrentItems => WorkflowOptions.MinimumNumberOfConcurrentItems;
16+
protected override int MaxConcurrentItems => 2;
1717
protected override QueueType Queue => QueueType.Event;
1818

1919
public EventConsumer(IPersistenceProvider persistenceStore, IQueueProvider queueProvider, ILoggerFactory loggerFactory, IServiceProvider serviceProvider, IWorkflowRegistry registry, IDistributedLockProvider lockProvider, WorkflowOptions options, IDateTimeProvider datetimeProvider)

src/WorkflowCore/Services/BackgroundTasks/QueueConsumer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace WorkflowCore.Services.BackgroundTasks
1111
internal abstract class QueueConsumer : IBackgroundTask
1212
{
1313
protected abstract QueueType Queue { get; }
14-
protected virtual int MaxConcurrentItems => Options.MaxConcurrentItems ?? Math.Max(Environment.ProcessorCount, WorkflowOptions.MinimumNumberOfConcurrentItems);
14+
protected virtual int MaxConcurrentItems => Math.Max(Environment.ProcessorCount, 2);
1515
protected virtual bool EnableSecondPasses => false;
1616

1717
protected readonly IQueueProvider QueueProvider;

src/WorkflowCore/Services/BackgroundTasks/WorkflowConsumer.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ internal class WorkflowConsumer : QueueConsumer, IBackgroundTask
1515
private readonly ObjectPool<IPersistenceProvider> _persistenceStorePool;
1616
private readonly ObjectPool<IWorkflowExecutor> _executorPool;
1717

18+
protected override int MaxConcurrentItems => Options.MaxConcurrentWorkflows ?? base.MaxConcurrentItems;
19+
1820
protected override QueueType Queue => QueueType.Workflow;
1921

2022
public WorkflowConsumer(IPooledObjectPolicy<IPersistenceProvider> persistencePoolPolicy, IQueueProvider queueProvider, ILoggerFactory loggerFactory, IServiceProvider serviceProvider, IWorkflowRegistry registry, IDistributedLockProvider lockProvider, IPooledObjectPolicy<IWorkflowExecutor> executorPoolPolicy, IDateTimeProvider datetimeProvider, WorkflowOptions options)

0 commit comments

Comments
 (0)