Beispiel #1
0
        public long EnqueuedCount([NotNull] string queue)
        {
            if (queue is null)
            {
                throw new ArgumentNullException(nameof(queue));
            }

            var provider      = _storage.GetQueueProvider(queue);
            var monitoringApi = provider.GetMonitoringApi();
            var statistics    = monitoringApi.GetQueueStatistics(queue);

            return(statistics.Enqueued);
        }
Beispiel #2
0
        public override void AddToQueue([NotNull] string queue, [NotNull] string jobId)
        {
            ValidateQueue(queue);
            long id = ValidateJobId(jobId);

            ThrowIfDisposed();

            var provider        = _storage.GetQueueProvider(queue);
            var persistentQueue = provider.GetJobQueue();

            switch (persistentQueue)
            {
            case EFCoreJobQueue storageJobQueue:
                _queue.Enqueue(context => context.Add(new HangfireQueuedJob
                {
                    JobId = id,
                    Queue = queue,
                }));
                break;

            default:
                _queue.Enqueue(context => persistentQueue.Enqueue(queue, jobId));
                break;
            }
            if (persistentQueue is EFCoreJobQueue)
            {
                _afterCommitQueue.Enqueue(
                    () => EFCoreJobQueue.NewItemInQueueEvent.Set());
            }
        }