/// <summary> /// /// </summary> /// <param name="queue"></param> /// <param name="jobId"></param> public override void AddToQueue(string queue, string jobId) { var provider = _queueProviders.GetProvider(queue); var persistentQueue = provider.GetJobQueue(_connection); QueueCommand(_ => { persistentQueue.Enqueue(queue, jobId); }); }
public override IFetchedJob FetchNextJob(string[] queues, CancellationToken cancellationToken) { if (queues == null || queues.Length == 0) { throw new ArgumentNullException(nameof(queues)); } var providers = queues .Select(queue => _queueProviders.GetProvider(queue)) .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."); } var persistentQueue = providers[0].GetJobQueue(Database); return(persistentQueue.Dequeue(queues, cancellationToken)); }