コード例 #1
0
        public QueuedJobRecord Enqueue(string message, object parameters, int priority)
        {
            var queuedJob = new QueuedJobRecord {
                Parameters = JsonConvert.SerializeObject(parameters),
                Message    = message,
                CreatedUtc = _clock.UtcNow,
            };

            _messageRepository.Create(queuedJob);

            return(queuedJob);
        }
コード例 #2
0
        private void ProcessMessage(QueuedJobRecord job)
        {
            Logger.Debug("Processing job {0}.", job.Id);

            try {
                var payload    = JObject.Parse(job.Parameters);
                var parameters = payload.ToDictionary();

                _eventBus.Notify(job.Message, parameters);

                Logger.Debug("Processed job Id {0}.", job.Id);
            }
            catch (Exception e) {
                Logger.Error(e, "An unexpected error while processing job {0}. Error message: {1}.", job.Id, e);
            }
            finally {
                _jobsQueueManager.Value.Delete(job);
            }
        }
コード例 #3
0
 public void Delete(QueuedJobRecord job)
 {
     _jobRepository.Delete(job);
 }