11using Hangfire ;
22using Microsoft . Extensions . Configuration ;
33using Microsoft . Extensions . Hosting ;
4+ using Microsoft . Extensions . Options ;
45using System ;
56using System . Collections . Generic ;
67using System . Linq ;
1112
1213namespace 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