コード例 #1
0
        static async Task <ScheduledMessage> Schedule(ConsumeContext context, DateTime scheduledTime, object message, Type messageType,
                                                      ScheduleMessageContextPipe pipe, CancellationToken cancellationToken)
        {
            await context.Publish(message, messageType, pipe, cancellationToken).ConfigureAwait(false);

            var destinationAddress = GetDestinationAddress(context, message);

            return(new ScheduledMessageHandle(pipe.ScheduledMessageId ?? NewId.NextGuid(), scheduledTime, destinationAddress));
        }
コード例 #2
0
        static async Task <ScheduledMessage <T> > Schedule <T>(ConsumeContext context, DateTime scheduledTime, object values, ScheduleMessageContextPipe <T> pipe,
                                                               CancellationToken cancellationToken)
            where T : class
        {
            var message = await MessageInitializerCache <T> .InitializeMessage(values, cancellationToken).ConfigureAwait(false);

            await context.Publish(message, pipe, cancellationToken).ConfigureAwait(false);

            var destinationAddress = GetDestinationAddress(context, message);

            return(new ScheduledMessageHandle <T>(pipe.ScheduledMessageId ?? NewId.NextGuid(), scheduledTime, destinationAddress, message));
        }
コード例 #3
0
        static async Task <ScheduledMessage <T> > Schedule <T>(ConsumeContext context, DateTime scheduledTime, T message, ScheduleMessageContextPipe <T> pipe,
                                                               CancellationToken cancellationToken)
            where T : class
        {
            await context.Publish(message, pipe, cancellationToken).ConfigureAwait(false);

            var destinationAddress = GetDestinationAddress <T>(context);

            return(new ScheduledMessageHandle <T>(pipe.ScheduledMessageId ?? NewId.NextGuid(), scheduledTime, destinationAddress, message));
        }