public async Task PublishAsync(Type messageType, object message)
        {
            AssertUtils.IsNotNull(message, "消息不能null");
            var topic   = GetTopic(messageType);
            var jobData = JobData.CreateJobData(topic, _options.Serializer.Serialize(message));
            var result  = await _redisStorage.Enqueue(jobData);

            AssertUtils.IsTrue(result, $"redis生产者数据失败,topic:{topic}");
        }
Exemplo n.º 2
0
        public async Task PublishAsync(Type messageType, object message)
        {
            AssertUtils.IsNotNull(message, "消息不能null");
            var topic    = GetTopic(messageType);
            var routeKey = Helper.GetRouteKey(message);
            var jobData  = JobData.CreateJobData(topic, _options.Serializer.Serialize(message), routeKey);
            var result   = await _redisStorage.StreamAdd(jobData);

            AssertUtils.IsNotEmpty(result, $"RedisMessageBus生产者数据失败,topic:{topic}");
        }
        public async Task PublishDelayAsync(Type messageType, object message, TimeSpan delay)
        {
            AssertUtils.IsNotNull(message, "消息不能null");
            if (delay <= TimeSpan.Zero)
            {
                await PublishAsync(messageType, message);

                return;
            }
            var topic   = GetTopic(messageType);
            var jobData = JobData.CreateJobData(topic, _options.Serializer.Serialize(message));
            var result  = await _redisStorage.EnqueueDealy(jobData, delay);

            AssertUtils.IsTrue(result, $"redis生产者数据失败,topic:{topic}");
        }
 private async Task Enqueue(CrontabJobData crontabJobData)
 {
     var jobData = JobData.CreateJobData(crontabJobData.Topic, crontabJobData.Data);
     await _redisStorage.Enqueue(jobData);
 }