public override void Commit() { if (Logger.IsDebugEnabled()) { foreach (var tuple in _jobsToEnqueue) { Logger.Debug($"Enqueuing Job ({tuple.Item2}), on queue: '{tuple.Item1}'\r\n"); } Logger.Debug($"\r\nCommit:\r\n {string.Join("\r\n", _writeModels.Select(SerializeWriteModel))}"); } var writeTasks = _jobsToEnqueue.Select(t => { var queue = t.Item1; var jobId = t.Item2; IPersistentJobQueueProvider provider = _queueProviders.GetProvider(queue); IPersistentJobQueue persistentQueue = provider.GetJobQueue(_connection); return(Task.Run(() => persistentQueue.Enqueue(queue, jobId))); }).ToList(); if (_writeModels.Any()) { var writeTask = _connection .Database .GetCollection <BsonDocument>(_connection.JobGraph.CollectionNamespace.CollectionName) .BulkWriteAsync(_writeModels); writeTasks.Add(writeTask); } // make sure to run tasks on default task scheduler Task.Run(() => Task.WhenAll(writeTasks)).GetAwaiter().GetResult(); }
public void AddToQueue(string queue, string jobId) { IPersistentJobQueueProvider provider = _queueProviders.GetProvider(queue); IPersistentJobQueue persistentQueue = provider.GetJobQueue(_connection); QueueCommand(_ => persistentQueue.Enqueue(queue, jobId)); }
public override IFetchedJob FetchNextJob(string[] queues, CancellationToken cancellationToken) { if (queues == null) { throw new ArgumentNullException(nameof(queues)); } if (queues.Length == 0) { throw new ArgumentNullException(nameof(queues)); } IPersistentJobQueueProvider[] providers = queues.Select(q => QueueProviders.GetProvider(q)) .Distinct() .ToArray(); if (providers.Length != 1) { throw new InvalidOperationException($"Multiple provider instances registered for queues: [{string.Join(", ", queues)}]. You should choose only one type of persistent queues per server instance."); } IPersistentJobQueue persistentQueue = providers.Single().GetJobQueue(); IFetchedJob queue = persistentQueue.Dequeue(queues, cancellationToken); return(queue); }
public RavenJobQueueProvider([NotNull] RavenStorage storage, [NotNull] RavenStorageOptions options) { storage.ThrowIfNull("storage"); options.ThrowIfNull("options"); _jobQueue = new RavenJobQueue(storage, options); _monitoringApi = new RavenJobQueueMonitoringApi(storage); }
public RavenJobQueueProvider([NotNull] RavenStorage storage, [NotNull] RavenStorageOptions options) { storage.ThrowIfNull("storage"); options.ThrowIfNull("options"); _jobQueue = new RavenJobQueue(storage, options); //_monitoringApi = new RavenJobQueueMonitoringApi(storage); }
public void SetUpQueue() { options = new TestServiceBusQueueOptions(); provider = new ServiceBusQueueJobQueueProvider(options); queue = provider.GetJobQueue(); monitor = provider.GetJobQueueMonitoringApi(); }
public SqlServerJobQueueProvider([NotNull] SqlServerStorage storage, [NotNull] SqlServerStorageOptions options) { if (storage == null) throw new ArgumentNullException("storage"); if (options == null) throw new ArgumentNullException("options"); _jobQueue = new SqlServerJobQueue(storage, options); _monitoringApi = new SqlServerJobQueueMonitoringApi(storage); }
public MySqlJobQueueProvider(MySqlStorage storage, MySqlStorageOptions options) { if (storage == null) throw new ArgumentNullException("storage"); if (options == null) throw new ArgumentNullException("options"); _jobQueue = new MySqlJobQueue(storage, options); _monitoringApi = new MySqlJobQueueMonitoringApi(storage); }
public FluentNHibernateJobQueueProvider(FluentNHibernateJobStorage storage) { if (storage == null) { throw new ArgumentNullException(nameof(storage)); } _jobQueue = new FluentNHibernateJobQueue(storage); _monitoringApi = new FluentNHibernateJobQueueMonitoringApi(storage); }
public override void AddToQueue(string queue, string jobId) { IPersistentJobQueueProvider provider = _queueProviders.GetProvider(queue); IPersistentJobQueue persistentQueue = provider.GetJobQueue(_database); QueueCommand(_ => { persistentQueue.Enqueue(queue, jobId); }); }
public void AddToQueue(string queue, string jobId) { IPersistentJobQueueProvider provider = _queueProviders.GetProvider(queue); IPersistentJobQueue persistentQueue = provider.GetJobQueue(_connection); QueueCommand(_ => { persistentQueue.Enqueue(queue, jobId); return(Task.FromResult(0)); }); }
public void GetJobQueue_WhenIsNotNull() { // arrange JobQueueProvider provider = new(Storage); // act IPersistentJobQueue queue = provider.GetJobQueue(); // assert Assert.NotNull(queue); }
private void SetUpQueue(TimeSpan lockDuration) { options = new TestServiceBusQueueOptions { Configure = d => d.LockDuration = lockDuration }; provider = new ServiceBusQueueJobQueueProvider(options); queue = provider.GetJobQueue(); monitor = provider.GetJobQueueMonitoringApi(); }
public MySqlJobQueueProvider(MySqlStorage storage, MySqlStorageOptions options) { if (storage == null) { throw new ArgumentNullException("storage"); } if (options == null) { throw new ArgumentNullException("options"); } _jobQueue = new MySqlJobQueue(storage, options); _monitoringApi = new MySqlJobQueueMonitoringApi(storage, options); }
public SqlServerJobQueueProvider([NotNull] SqlServerStorage storage, [NotNull] SqlServerStorageOptions options) { if (storage == null) { throw new ArgumentNullException("storage"); } if (options == null) { throw new ArgumentNullException("options"); } _jobQueue = new SqlServerJobQueue(storage, options); _monitoringApi = new SqlServerJobQueueMonitoringApi(storage); }
public OracleJobQueueProvider(OracleStorage storage, OracleStorageOptions options) { if (storage == null) { throw new ArgumentNullException("storage"); } if (options == null) { throw new ArgumentNullException("options"); } _jobQueue = new OracleJobQueue(storage, options); _monitoringApi = new OracleJobQueueMonitoringApi(storage); }
public SQLiteJobQueueProvider([NotNull] SQLiteStorage storage, [NotNull] SQLiteStorageOptions options) { if (storage == null) { throw new ArgumentNullException(nameof(storage)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } _jobQueue = new SQLiteJobQueue(storage, options); _monitoringApi = new SQLiteJobQueueMonitoringApi(storage); }
public FluentNHibernateJobQueueProvider(FluentNHibernateJobStorage storage, FluentNHibernateStorageOptions options) { if (storage == null) { throw new ArgumentNullException("storage"); } if (options == null) { throw new ArgumentNullException("options"); } _jobQueue = new FluentNHibernateJobQueue(storage, options); _monitoringApi = new FluentNHibernateJobQueueMonitoringApi(storage); }
public void AddToQueue(string queue, string jobId) { if (string.IsNullOrEmpty(queue)) { throw new ArgumentNullException(nameof(queue)); } if (string.IsNullOrEmpty(jobId)) { throw new ArgumentNullException(nameof(jobId)); } IPersistentJobQueueProvider provider = connection.QueueProviders.GetProvider(queue); IPersistentJobQueue persistentQueue = provider.GetJobQueue(); QueueCommand(() => persistentQueue.Enqueue(queue, jobId)); }