public static void Main(string[] args) { var configBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile(ConfigFile); IConfiguration configuration = configBuilder.Build(); IJobStatusWebServiceCallServiceConfig auditingPersistenceServiceConfig = new JobStatusWebServiceCallServiceConfig(configuration["jobSchedulerApiEndPoint"]); IQueueConfiguration queueConfiguration = new JobStatusQueueConfiguration(configuration["queueConnectionString"], configuration["queueName"], 1); ISerializationService serializationService = new JsonSerializationService(); IApplicationLoggerSettings applicationLoggerOutputSettings = new ApplicationLoggerSettings { ApplicationLoggerOutputSettingsCollection = new List <IApplicationLoggerOutputSettings> { new MsSqlServerApplicationLoggerOutputSettings { ConnectionString = configuration["logConnectionString"], MinimumLogLevel = LogLevel.Information }, new ConsoleApplicationLoggerOutputSettings { MinimumLogLevel = LogLevel.Information } }, TaskKey = "Job Fail Status", EnableInternalLogs = true, JobId = "Job Fail Status Service", MinimumLogLevel = LogLevel.Information }; IExecutionContext executionContext = new ExecutionContext { JobId = "Job Fail Status Service", TaskKey = "Job Fail Status" }; ILogger logger = new SeriLogger(applicationLoggerOutputSettings, executionContext); IDateTimeProvider dateTimeProvider = new DateTimeProvider.DateTimeProvider(); IQueueSubscriptionService <JobContextDto> queueSubscriptionService = new QueueSubscriptionService <JobContextDto>(queueConfiguration, serializationService, logger); IJobStatusWebServiceCallService <JobContextDto> failedJobsWebServiceCallService = new FailedJobsWebServiceCallService(auditingPersistenceServiceConfig, queueSubscriptionService, serializationService, logger); failedJobsWebServiceCallService.Subscribe(); logger.LogInfo($"Started {executionContext.JobId}!"); ManualResetEvent oSignalEvent = new ManualResetEvent(false); oSignalEvent.WaitOne(); }
public static void Main(string[] args) { var configBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile(ConfigFile); IConfiguration configuration = configBuilder.Build(); IAuditingPersistenceServiceConfig auditingPersistenceServiceConfig = new AudtingPersistenceServiceConfig(configuration["auditConnectionString"]); IQueueConfiguration queueConfiguration = new AuditQueueConfiguration(configuration["queueConnectionString"], configuration["queueName"], 1); ISerializationService serializationService = new JsonSerializationService(); IApplicationLoggerSettings applicationLoggerOutputSettings = new ApplicationLoggerSettings { ApplicationLoggerOutputSettingsCollection = new List <IApplicationLoggerOutputSettings> { new MsSqlServerApplicationLoggerOutputSettings { ConnectionString = configuration["logConnectionString"], MinimumLogLevel = LogLevel.Information }, new ConsoleApplicationLoggerOutputSettings { MinimumLogLevel = LogLevel.Information } }, TaskKey = "Audit", EnableInternalLogs = true, JobId = "Audit Service", MinimumLogLevel = LogLevel.Information }; IExecutionContext executionContext = new ExecutionContext { JobId = "Audit Service", TaskKey = "Audit" }; ILogger logger = new SeriLogger(applicationLoggerOutputSettings, executionContext); IQueueSubscriptionService <AuditingDto> queueSubscriptionService = new QueueSubscriptionService <AuditingDto>(queueConfiguration, serializationService, logger); IAuditingPersistenceService <AuditingDto> auditingPersistenceService = new AuditingPersistenceService <AuditingDto>(auditingPersistenceServiceConfig, queueSubscriptionService, logger); auditingPersistenceService.Subscribe(); logger.LogInfo("Started!"); ManualResetEvent oSignalEvent = new ManualResetEvent(false); oSignalEvent.WaitOne(); }
public static void Main(string[] args) { var configBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile(ConfigFile); configuration = configBuilder.Build(); failJobFrequency = GetConfigItemAsInt(configuration, "numberOfMinutesCheckFail", 60); jobAgeToFail = GetConfigItemAsInt(configuration, "numberOfMinutesBeforeFail", 240); IQueueConfiguration queueConfiguration = new QueueConfiguration(configuration["queueConnectionString"], configuration["queueName"], 1); WebApiConfiguration webApiConfiguration = new WebApiConfiguration(configuration["jobSchedulerApiEndPoint"]); availableStreamers = new Dictionary <string, IStreamableKeyValuePersistenceService>(); mergeZipFilesService = new MergeZipFilesService(); ISerializationService serializationService = new JsonSerializationService(); IDateTimeProvider dateTimeProvider = new DateTimeProvider(); IApplicationLoggerSettings applicationLoggerOutputSettings = new ApplicationLoggerSettings { ApplicationLoggerOutputSettingsCollection = new List <IApplicationLoggerOutputSettings> { new MsSqlServerApplicationLoggerOutputSettings { ConnectionString = configuration["logConnectionString"], MinimumLogLevel = LogLevel.Debug }, new ConsoleApplicationLoggerOutputSettings { MinimumLogLevel = LogLevel.Debug } }, TaskKey = "Cross Loader", EnableInternalLogs = true, JobId = "Cross Loader Service", MinimumLogLevel = LogLevel.Debug }; IExecutionContext executionContext = new ExecutionContext { JobId = "Cross Loader Service", TaskKey = "Cross Loader" }; logger = new SeriLogger(applicationLoggerOutputSettings, executionContext); DbContextOptionsBuilder optionsBuilder = new DbContextOptionsBuilder(); optionsBuilder.UseSqlServer( configuration["jobQueueManagerConnectionString"], options => options.EnableRetryOnFailure(3, TimeSpan.FromSeconds(3), new List <int>())); crossLoadStatusService = new CrossLoadStatusService(webApiConfiguration, logger); crossLoadActiveJobService = new CrossLoadActiveJobService(optionsBuilder.Options, dateTimeProvider, jobAgeToFail); IQueueSubscriptionService <MessageCrossLoadDcftToDctDto> queueSubscriptionService = new QueueSubscriptionService <MessageCrossLoadDcftToDctDto>(queueConfiguration, serializationService, logger); logger.LogInfo("Cross Loader service subscribing to queue"); queueSubscriptionService.Subscribe(Callback, CancellationToken.None); logger.LogInfo("Cross Loader service initialising crashed jobs timer"); timer = new Timer(FindCrashedJobs, null, TimeSpan.FromSeconds(10), TimeSpan.FromMilliseconds(Timeout.Infinite)); logger.LogInfo("Started Cross Loader Service!"); ManualResetEvent oSignalEvent = new ManualResetEvent(false); oSignalEvent.WaitOne(); }