public static AdditionalMessageData GenerateData(QueueProducerConfiguration configuration) { if (configuration.GetMessageExpiration().HasValue || configuration.GetMessageDelay().HasValue || configuration.GetMessageRoute().HasValue) { var data = new AdditionalMessageData(); // ReSharper disable once PossibleInvalidOperationException if (configuration.GetMessageExpiration().HasValue&& configuration.GetMessageExpiration().Value) { data.SetExpiration(TimeSpan.FromSeconds(1)); } // ReSharper disable once PossibleInvalidOperationException if (configuration.GetMessageDelay().HasValue&& configuration.GetMessageDelay().Value) { data.SetDelay(TimeSpan.FromSeconds(5)); } // ReSharper disable once PossibleInvalidOperationException if (configuration.GetMessageRoute().HasValue&& configuration.GetMessageRoute().Value) { data.Route = DefaultRoute; } return(data); } return(new AdditionalMessageData()); }
public void Create_Default() { var id = Substitute.For<IMessage>(); var message = new AdditionalMessageData(); var test = new SendMessageCommand(id, message); Assert.Equal(id, test.MessageToSend); Assert.Equal(message, test.MessageData); }
/// <summary> /// Creates an expired message 24 hours from now /// </summary> /// <returns></returns> private static IAdditionalMessageData ExpiredDataFuture() { var data = new AdditionalMessageData(); data.SetExpiration(TimeSpan.FromDays(1)); if (_userData) { data.AdditionalMetaData.Add(new AdditionalMetaData <int>("DayOfWeek", Convert.ToInt32(DateTime.Today.DayOfWeek))); } return(data); }
public void AdditionalMessageData() { IAdditionalMessageData test = new AdditionalMessageData(); test.SetDelay(TimeSpan.FromSeconds(1)); Assert.Equal(TimeSpan.FromSeconds(1), test.GetDelay()); test.SetExpiration(TimeSpan.FromSeconds(5)); Assert.Equal(TimeSpan.FromSeconds(5), test.GetExpiration()); test.SetExpiration(null); Assert.Null(test.GetExpiration()); }
public void GetExpiration_Test() { var data = new AdditionalMessageData(); Assert.Null(data.GetExpiration()); var time = DateTime.UtcNow; data.SetExpiration(time.TimeOfDay); Assert.Equal(time.TimeOfDay, data.GetExpiration()); time = DateTime.UtcNow.AddHours(1); data.SetExpiration(time.TimeOfDay); Assert.Equal(time.TimeOfDay, data.GetExpiration()); }
public static AdditionalMessageData GenerateData(QueueProducerConfiguration configuration) { if (configuration.Options().EnableMessageExpiration || configuration.Options().EnableDelayedProcessing) { var data = new AdditionalMessageData(); if (configuration.Options().EnableMessageExpiration) { data.SetExpiration(TimeSpan.FromSeconds(1)); } if (configuration.Options().EnableDelayedProcessing) { data.SetDelay(TimeSpan.FromSeconds(5)); } return(data); } return(new AdditionalMessageData()); }
public static AdditionalMessageData GenerateData(QueueProducerConfiguration configuration) { if (configuration.Options().EnableMessageExpiration || configuration.Options().EnableDelayedProcessing || configuration.Options().EnablePriority || configuration.Options().AdditionalColumns.Count > 0) { var data = new AdditionalMessageData(); if (configuration.Options().EnableMessageExpiration) data.SetExpiration(TimeSpan.FromSeconds(1)); if (configuration.Options().EnableDelayedProcessing) data.SetDelay(TimeSpan.FromSeconds(5)); if (configuration.Options().EnablePriority) data.SetPriority(5); if (configuration.Options().AdditionalColumns.Count > 0) { data.AdditionalMetaData.Add(new AdditionalMetaData<int>("OrderID", 123)); } return data; } return null; }
private List<QueueMessage<SimpleMessage, IAdditionalMessageData>> GenerateMessages(List<SimpleMessage> jobs, TimeSpan? delay = null, TimeSpan? expiration = null, ushort? priority = null ) { var messages = new List<QueueMessage<SimpleMessage, IAdditionalMessageData>>(jobs.Count); foreach (var message in jobs) { if (delay.HasValue || expiration.HasValue || priority.HasValue) { var data = new AdditionalMessageData(); if (priority.HasValue) { data.SetPriority(priority.Value); } if (delay.HasValue) { data.SetDelay(delay.Value); } if (expiration.HasValue) { data.SetExpiration(expiration.Value); } messages.Add(new QueueMessage<SimpleMessage, IAdditionalMessageData>(message, data)); } else { messages.Add(new QueueMessage<SimpleMessage, IAdditionalMessageData>(message, null)); } } return messages; }
public static AdditionalMessageData GenerateData(QueueProducerConfiguration configuration) { if (configuration.GetMessageExpiration().HasValue || configuration.GetMessageDelay().HasValue) { var data = new AdditionalMessageData(); // ReSharper disable once PossibleInvalidOperationException if (configuration.GetMessageExpiration().HasValue && configuration.GetMessageExpiration().Value) data.SetExpiration(TimeSpan.FromSeconds(1)); // ReSharper disable once PossibleInvalidOperationException if (configuration.GetMessageDelay().HasValue && configuration.GetMessageDelay().Value) data.SetDelay(TimeSpan.FromSeconds(5)); return data; } return null; }
/// <summary> /// Sends the specified action to the specified queue. /// </summary> /// <param name="job">The job.</param> /// <param name="scheduledTime">The scheduled time.</param> /// <param name="expressionToRun">The expression to run.</param> /// <returns></returns> public async Task<IJobQueueOutputMessage> SendAsync(IScheduledJob job, DateTimeOffset scheduledTime, LinqExpressionToRun expressionToRun) { var data = SendPreChecks(job.Name, scheduledTime); if (data != null) return data; var messageData = new AdditionalMessageData(); SetMetaDataForJob(job.Name, scheduledTime, new DateTimeOffset(GetTimeFactory.Create().GetCurrentUtcDate()), job.Route, messageData); var message = await Queue.SendAsync(expressionToRun, messageData).ConfigureAwait(false); var result = ProcessResult(job, scheduledTime, message); if (result != null) return result; //try one more time result = ProcessResult(job, scheduledTime, await Queue.SendAsync(expressionToRun, messageData).ConfigureAwait(false)); return result ?? new JobQueueOutputMessage(JobQueuedStatus.Failed); }