private static void Main() { var loggerFactory = LoggerFactory.Create(builder => { builder .SetMinimumLevel(LogLevel.Warning) .AddFilter("Microsoft", LogLevel.Warning) .AddFilter("System", LogLevel.Warning) .AddConsole(); }); RabbitMqJobs.Initialize(true, s => { s.RabbitMqSettings.VirtualHost = "massivejobs"; s.RabbitMqSettings.NamePrefix = "examples."; s.MaxQueueLength = QueueLength.NoLimit; s.PublishBatchSize = 400; s.JobLoggerFactory = new LoggerFactoryWrapper(loggerFactory); }); Console.WriteLine("Testing periodic jobs. Press Enter to quit!"); PeriodicJob.PublishPeriodic("test_periodic", "0/2 * * ? * *"); Console.ReadLine(); MassiveJobsMediator.DefaultInstance.Dispose(); }
private static void Main() { // initialize Serilog Log.Logger = new LoggerConfiguration() .MinimumLevel.Warning() .WriteTo.Console() .CreateLogger(); // initialize RabbitMqJobs RabbitMqJobs.Initialize(true, s => { s.RabbitMqSettings.VirtualHost = "massivejobs"; s.RabbitMqSettings.NamePrefix = "examples."; s.MaxQueueLength = QueueLength.NoLimit; s.PublishBatchSize = 400; s.JobLoggerFactory = new MassiveJobs.Logging.Serilog.LoggerWrapperFactory(); }); Console.WriteLine("Testing periodic jobs. Press Enter to quit!"); PeriodicJob.PublishPeriodic("test_periodic", "0/2 * * ? * *"); Console.ReadLine(); MassiveJobsMediator.DefaultInstance.Dispose(); }
public void TestInit() { _performCount = 0; RabbitMqJobs.Initialize(true, s => { s.RabbitMqSettings.VirtualHost = "massivejobs.tests"; s.RabbitMqSettings.NamePrefix = "tests."; s.RabbitMqSettings.PrefetchCount = 1000; s.MaxDegreeOfParallelismPerWorker = 4; s.ImmediateWorkersCount = 4; s.ScheduledWorkersCount = 2; s.PeriodicWorkersCount = 2; s.JobLoggerFactory = new DebugLoggerFactory(); }); }
public static IServiceCollection AddMassiveJobs( this IServiceCollection serviceCollection, Action <RabbitMqJobsOptions> configureAction = null ) { var options = new RabbitMqJobsOptions { RabbitMqSettings = new RabbitMqSettings() }; configureAction?.Invoke(options); var massiveJobsSettings = RabbitMqJobs.CreateJobsSettings(options); serviceCollection.AddSingleton(massiveJobsSettings); if (options.JobLoggerFactory != null) { serviceCollection.AddSingleton(options.JobLoggerFactory); } else { serviceCollection.AddSingleton <IJobLoggerFactory>(p => new LoggerFactoryWrapper(p.GetRequiredService <ILoggerFactory>())); } if (options.JobSerializer != null) { serviceCollection.AddSingleton(options.JobSerializer); } else { serviceCollection.AddSingleton <IJobSerializer, DefaultSerializer>(); } if (options.JobTypeProvider != null) { serviceCollection.AddSingleton(options.JobTypeProvider); } else { serviceCollection.AddSingleton <IJobTypeProvider, DefaultTypeProvider>(); } serviceCollection.AddSingleton <IJobRunner>(p => new DefaultJobRunner(p.GetRequiredService <IJobLoggerFactory>().CreateLogger <DefaultJobRunner>())); serviceCollection.AddSingleton <IMessagePublisher>(p => new RabbitMqMessagePublisher(options.RabbitMqSettings, massiveJobsSettings, p.GetRequiredService <IJobLoggerFactory>().CreateLogger <RabbitMqMessagePublisher>())); serviceCollection.AddSingleton <IMessageConsumer>(p => new RabbitMqMessageConsumer(options.RabbitMqSettings, massiveJobsSettings, p.GetRequiredService <IJobLoggerFactory>().CreateLogger <RabbitMqMessageConsumer>())); serviceCollection.AddScoped <IJobPublisher>(svcProvider => { return(new DefaultJobPublisher( svcProvider.GetService <MassiveJobsSettings>(), svcProvider.GetService <IMessagePublisher>(), svcProvider.GetService <IJobTypeProvider>(), svcProvider.GetService <IJobSerializer>(), svcProvider.GetService <IJobLoggerFactory>().CreateLogger <DefaultJobPublisher>() )); }); return(serviceCollection); }