maihaoche / rocketmq-spring-boot-starter

Spring Boot starter for RocketMQ
Apache License 2.0
287 stars 147 forks source link

同步刷盘timeout,项目是进行重新推送,但doAfterSyncSend却没有消息的内容无法重新推送 #5

Closed belugaliu closed 6 years ago

belugaliu commented 6 years ago

我们想用rocketMQ的消息为任务,推送其他服务消费任务指令。所以我们可能丢不起。所以,配置rocketMQ为SYNC_FLUSH.
SYNC_FLUSH的SendStatus有对应几个状态:SEND_OK、FLUSH_DISK_TIMEOUT、FLUSH_SLAVE_TIMEOUT、SLAVE_NOT_AVAILABLE
对于状态是FLUSH_DISK_TIMEOUT和FLUSH_SLAVE_TIMEOUT是需要重推的,但是给的业务后续处理的方法只有SendResult没有Message参数,是不是可以改一下,满足要求?

  /**
     * 重写此方法处理发送后的逻辑
     *
     * @param sendResult  发送结果
     */
    public void doAfterSyncSend(SendResult sendResult) {}
suclogger commented 6 years ago

@liuliliGithub 刚才提交的内容是我们内部的版本,回调参数使用的是rocketmq的Message,如果需要使用原来的消息体POJO,可以稍加改造一下。

belugaliu commented 6 years ago

好的,谢谢