Skip to content

Commit 12c98e9

Browse files
committed
fix: added default queues for triggers
1 parent 3d85d29 commit 12c98e9

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

src/WorkflowEngine.Core/TriggerContext.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public static TriggerContext CreateTrigger(this IWorkflow workflow, Dictionary<s
2727
}
2828
public class TriggerContext : ITriggerContext, IFormattable
2929
{
30+
public string Queue { get; set; }
3031
public IWorkflow Workflow { get; set; }
3132
public ITrigger Trigger { get; set; }
3233
public string PrincipalId { get; set; }

src/WorkflowEngine.Hangfire/HangfireWorkflowExecutor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public static class BackgroundClientExtensions
3535
public static string TriggerAsync<TTriggerContext>(this IBackgroundJobClient backgroundJobClient, TTriggerContext trigger)
3636
where TTriggerContext : TriggerContext
3737
{
38-
var job = backgroundJobClient.Enqueue<IHangfireWorkflowExecutor>(
38+
var job = backgroundJobClient.Enqueue<IHangfireWorkflowExecutor>(trigger.Queue ?? "default",
3939
(executor) => executor.TriggerAsync(trigger, null));
4040

4141
return job;

src/WorkflowEngine.Hangfire/WorkflowStarterBackgroundJob.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using Hangfire;
22
using Microsoft.Extensions.Configuration;
33
using Microsoft.Extensions.Hosting;
4+
using Microsoft.Extensions.Options;
45
using System;
56
using System.Collections.Generic;
67
using System.Linq;
@@ -11,6 +12,10 @@
1112

1213
namespace Microsoft.Extensions.DependencyInjection
1314
{
15+
public class WorkflowStarterBackgroundJobOptions
16+
{
17+
public string QueueName { get; set; } = "default";
18+
}
1419
public class WorkflowStarterBackgroundJob : BackgroundService
1520
{
1621
private readonly IServiceScopeFactory _serviceScopeFactory;
@@ -31,6 +36,8 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
3136
var workflows = sp.GetRequiredService<IWorkflowRepository>();
3237
var jobs = sp.GetRequiredService<IRecurringJobManager>();
3338
var configuration = sp.GetRequiredService<IConfiguration>();
39+
var options = sp.GetRequiredService<IOptions<WorkflowStarterBackgroundJobOptions>>();
40+
3441

3542
foreach (var workflow in await workflows.GetAllWorkflows())
3643
{
@@ -52,21 +59,23 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
5259

5360
workflow.Manifest = null;
5461

55-
jobs.AddOrUpdate(workflow.Id.ToString() + trigger.Key,
62+
jobs.AddOrUpdate(workflow.Id.ToString() + trigger.Key, options.Value.QueueName,
5663
(System.Linq.Expressions.Expression<System.Action<IHangfireWorkflowExecutor>>) ((executor) => executor.TriggerAsync(new TriggerContext
5764
{
65+
Queue = options.Value.QueueName,
5866
PrincipalId = "1b714972-8d0a-4feb-b166-08d93c6ae328",
5967
Workflow = workflow,
6068
Trigger = new Trigger
6169
{
70+
6271
Inputs = trigger.Value.Inputs,
6372
ScheduledTime = DateTimeOffset.UtcNow,
6473
Type = trigger.Value.Type,
6574
Key = trigger.Key
6675
},
6776
}, null)), trigger.Value.Inputs["cronExpression"] as string,new RecurringJobOptions
6877
{
69-
TimeZone = GetTimeZone(trigger)
78+
TimeZone = GetTimeZone(trigger),
7079
});
7180

7281

0 commit comments

Comments
 (0)