public MessengerServer(SqlServerSettings settings, RepositoryFactory repositoryFactory)
            : base(settings)
        {
            _repositoryFactory = repositoryFactory;
            if (settings == null) throw new ArgumentNullException(nameof(settings));
            if (string.IsNullOrWhiteSpace(settings.ConnectionString)) throw new NullReferenceException("ConnectionString is not specified!");

            _jobActivator = settings.JobActivator ?? new JobActivator();
            _checkInterval = settings.CheckInterval.HasValue && settings.CheckInterval > TimeSpan.Zero
                ? settings.CheckInterval.Value
                : TimeSpan.FromSeconds(10);

            _maxProcessCount = settings.MaxProcessCount > 0 ? settings.MaxProcessCount : Environment.ProcessorCount*2;
            _messageBatchSize = settings.MessageBatchSize > 0 ? settings.MessageBatchSize : 10;

            _processNameFormat = settings.ProcessNameFormat;
            _customProcessName = settings.CustomProcessName;

            _completedMessages = settings.CompletedMessages ?? CompletedMessages.Default;

            if (_completedMessages.Archive && _completedMessages.Cleanup && _completedMessages.CleanOlderThanUtc == null)
            {
                _completedMessages.CleanOlderThanUtc = () => DateTime.Today;
            }
        }
Example #2
0
        private static void StartServer(CancellationTokenSource cancelationSource, string connectionString)
        {
            var settings = new SqlServerSettings
            {
                ConnectionString = connectionString,
                CheckInterval = TimeSpan.FromSeconds(10),
                MessageBatchSize = 1,
                MaxProcessCount = 10,
                Logger = new ConsoleLogger(true),
                CompletedMessages = new CompletedMessages { Archive = true, Cleanup = true, CleanOlderThanUtc = () => DateTime.UtcNow.AddMinutes(-5) },
            };

            //_server = new MessengerServer(settings, new PostgreSqlRepositoryFactory(settings));
            _server = new MessengerServer(settings, new MsSqlRepositoryFactory(settings));
            _server.Start(cancelationSource.Token);
        }
 public MsSqlMessengerServer(SqlServerSettings settings) : base(settings, new MsSqlRepositoryFactory(settings))
 {
 }
 public PostgreSqlMessengerServer(SqlServerSettings settings) : base(settings, new PostgreSqlRepositoryFactory(settings))
 {
 }