示例#1
0
        /// <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));
            return(data);
        }
示例#2
0
        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);
        }
示例#3
0
        public static AdditionalMessageData GenerateDataWithColumnValue(QueueProducerConfiguration configuration,
                                                                        int columnValue)
        {
            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);
            }


            data.AdditionalMetaData.Add(new AdditionalMetaData <int>("OrderID", columnValue));


            return(data);
        }
        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 new AdditionalMessageData();
        }
示例#5
0
        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());
        }
示例#6
0
        /// <summary>
        /// Creates an expired message by having it expire 1 second in the future and delaying processing for 5 seconds
        /// </summary>
        /// <returns></returns>
        private static IAdditionalMessageData ExpiredData()
        {
            var data = new AdditionalMessageData();

            data.SetExpiration(TimeSpan.FromSeconds(1));
            data.SetDelay(TimeSpan.FromSeconds(5));
            return(data);
        }
示例#7
0
        private static IAdditionalMessageData DelayedProcessing(int seconds)
        {
            var data = new AdditionalMessageData();

            data.SetDelay(TimeSpan.FromSeconds(seconds));
            data.SetExpiration(TimeSpan.FromDays(1));
            return(data);
        }
示例#8
0
        public void SetExpiration_Test()
        {
            var time = DateTime.UtcNow;
            var data = new AdditionalMessageData();

            data.SetExpiration(time.TimeOfDay);

            Assert.Equal(time.TimeOfDay, data.GetExpiration());
        }
示例#9
0
        /// <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);
        }
示例#10
0
        private static IAdditionalMessageData DelayedProcessing(int seconds)
        {
            var data = new AdditionalMessageData();

            data.SetDelay(TimeSpan.FromSeconds(seconds));
            data.SetExpiration(TimeSpan.FromDays(1));
            if (_userData)
            {
                data.AdditionalMetaData.Add(new AdditionalMetaData <int>("DayOfWeek", Convert.ToInt32(DateTime.Today.DayOfWeek)));
            }
            return(data);
        }
示例#11
0
        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());
        }
示例#12
0
        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;
        }
示例#13
0
 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;
 }
示例#14
0
        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;
        }