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();
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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();
        }