public ICommandResult DeleteJob(string name)
        {
            var queueParams = new QueueParams(name, hangfireOptions.Value.ServerName);
            var task        = new ConsumerJobTask(queueParams, 0);

            return(jobManager.DeleteJob(task));
        }
Ejemplo n.º 2
0
        public async Task <ICommandResult> Execute(ConsumerJobTask task)
        {
            var            saver  = factory.GetSaver(task.QueueParameters.Name);
            ICommandResult result = new CommandResult {
                Success = true
            };

            var approximateLength = await queue.GetQueueLength(task.QueueParameters.Name);

            for (int i = 0; i < approximateLength; i++)
            {
                var message = await queue.DequeueAsync(task.QueueParameters.Name);

                if (message != null)
                {
                    result = await saver.Save(message);

                    if (result.Success)
                    {
                        await queue.DeleteMessage(task.QueueParameters.Name, message);
                    }
                }
                else
                {
                    break;
                }
            }
            return(result);
        }
        public ICommandResult TryCreateJob(string name, int interval)
        {
            CommandResult isAdded  = new CommandResult();
            var           qName    = new QueueParams(name, hangfireOptions.Value.ServerName);
            var           initTask = new ConsumerJobTask(qName, interval);

            if (!CheckJobLimitExceeded(initTask))
            {
                jobManager.AddJob(initTask);
                isAdded.Success = true;
                isAdded.Message = "Consumer created";
            }
            else
            {
                isAdded.Message = "Job Limit Exceeded";
            }
            return(isAdded);
        }