Beispiel #1
0
        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();
        }
Beispiel #2
0
        public void AddToQueue(string queue, string jobId)
        {
            IPersistentJobQueueProvider provider        = _queueProviders.GetProvider(queue);
            IPersistentJobQueue         persistentQueue = provider.GetJobQueue(_connection);

            QueueCommand(_ => persistentQueue.Enqueue(queue, jobId));
        }
Beispiel #3
0
    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);
    }
Beispiel #4
0
        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);
        }
Beispiel #6
0
        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));
            });
        }
Beispiel #12
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);
        }
Beispiel #18
0
        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));
        }