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; }
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); } }
public void Delete(QueuedJobRecord job) { _jobRepository.Delete(job); }