public void AddToQueue(string queue, string jobId) { IPersistentJobQueueProvider provider = _queueProviders.GetProvider(queue); IPersistentJobQueue persistentQueue = provider.GetJobQueue(_connection); QueueCommand(_ => persistentQueue.Enqueue(queue, jobId)); }
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 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 long EnqueuedCount(string queue) { if (string.IsNullOrEmpty(queue)) { throw new ArgumentNullException(nameof(queue)); } IPersistentJobQueueProvider provider = storage.QueueProviders.GetProvider(queue); IPersistentJobQueueMonitoringApi monitoringApi = provider.GetJobQueueMonitoringApi(); return(monitoringApi.GetEnqueuedCount(queue)); }
/// <summary> /// Adds a job queue provider of the specified queues into the storage. /// </summary> /// <param name="configuration"> /// The storage configuration to add the job queue provider to. /// </param> /// <param name="provider"> /// A job queue provider to add. /// </param> /// <param name="queues"> /// A list of provider queues. /// </param> /// <returns> /// A job storage configuration. /// </returns> /// <exception cref="ArgumentNullException"> /// <paramref name="configuration"/> is <see langword="null"/>. /// </exception> /// <exception cref="ArgumentNullException"> /// <paramref name="provider"/> is <see langword="null"/>. /// </exception> /// <exception cref="ArgumentNullException"> /// <paramref name="queues"/> is <see langword="null"/>. /// </exception> /// <exception cref="ArgumentException"> /// <paramref name="queues"/> is empty. /// </exception> public static IGlobalConfiguration <EFCoreStorage> UseQueueProvider( [NotNull] this IGlobalConfiguration <EFCoreStorage> configuration, [NotNull] IPersistentJobQueueProvider provider, [NotNull] IList <string> queues) { if (configuration is null) { throw new ArgumentNullException(nameof(configuration)); } configuration.Entry.RegisterProvider(provider, queues); return(configuration); }
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)); }
internal void RegisterProvider(IPersistentJobQueueProvider provider, IList <string> queues) { if (provider is null) { throw new ArgumentNullException(nameof(provider)); } if (queues is null) { throw new ArgumentNullException(nameof(queues)); } if (queues.Count == 0) { throw new ArgumentException(CoreStrings.ArgumentExceptionCollectionCannotBeEmpty, nameof(queues)); } var providers = QueueProviders; foreach (var queue in queues) { providers[queue] = provider; } }