public SchedulerBusObserver(IHangfireComponentResolver hangfireComponentResolver, Uri schedulerEndpointAddress, Action <BackgroundJobServerOptions> configureServer) { _hangfireComponentResolver = hangfireComponentResolver; _schedulerEndpointAddress = schedulerEndpointAddress; _configureServer = configureServer; }
public BusRegistrationContextComponentResolver(IConfigurationServiceProvider provider, IHangfireComponentResolver resolver) { _backgroundJobClient = new Lazy <IBackgroundJobClient>(() => provider.GetService <IBackgroundJobClient>() ?? resolver.BackgroundJobClient); _recurringJobManager = new Lazy <IRecurringJobManager>(() => provider.GetService <IRecurringJobManager>() ?? resolver.RecurringJobManager); _timeZoneResolver = new Lazy <ITimeZoneResolver>(() => provider.GetService <ITimeZoneResolver>() ?? resolver.TimeZoneResolver); _jobFilterProvider = new Lazy <IJobFilterProvider>(() => provider.GetService <IJobFilterProvider>() ?? resolver.JobFilterProvider); _backgroundProcesses = new Lazy <IEnumerable <IBackgroundProcess> >(() => provider.GetService <IEnumerable <IBackgroundProcess> >() ?? resolver.BackgroundProcesses); _jobStorage = new Lazy <JobStorage>(() => provider.GetService <JobStorage>() ?? resolver.JobStorage); }
public static void UseHangfireScheduler(this IBusFactoryConfigurator configurator, IHangfireComponentResolver hangfireComponentResolver, string queueName = "hangfire", Action <BackgroundJobServerOptions> configureServer = null) { if (configurator == null) { throw new ArgumentNullException(nameof(configurator)); } if (hangfireComponentResolver == null) { throw new ArgumentNullException(nameof(hangfireComponentResolver)); } configurator.ReceiveEndpoint(queueName, e => { var partitioner = configurator.CreatePartitioner(Environment.ProcessorCount); e.Consumer(() => new ScheduleMessageConsumer(hangfireComponentResolver), x => { x.Message <ScheduleMessage>(m => m.UsePartitioner(partitioner, p => p.Message.CorrelationId)); x.Message <CancelScheduledMessage>(m => m.UsePartitioner(partitioner, p => p.Message.TokenId)); }); e.Consumer(() => new ScheduleRecurringMessageConsumer(hangfireComponentResolver)); var observer = new SchedulerBusObserver(hangfireComponentResolver, e.InputAddress, configureServer); configurator.ConnectBusObserver(observer); configurator.UseMessageScheduler(e.InputAddress); }); }
public ScheduleMessageConsumer(IHangfireComponentResolver hangfireComponentResolver) : this(hangfireComponentResolver.BackgroundJobClient, hangfireComponentResolver.JobStorage) { }
public ScheduleRecurringMessageConsumer(IHangfireComponentResolver hangfireComponentResolver) : this(hangfireComponentResolver.RecurringJobManager, hangfireComponentResolver.TimeZoneResolver) { }