就是我们发送消息可能会用到消息中间件,如果失败了,我们会记录到表里面,然后会用定时调度去扫。但是这个操作可能会有一定的延时,有没有更快的方法?🤔
|
xuanbgApr 10, 2021
1
快是什么快?要消除的是定时任务的延时效果?这个没意义,现在发不出去的消息,马上重发大概率也是发不出去的。
|
|
noreplayApr 10, 2021 via Android
3
跟面试官说,记录完之后,发个通知给面试官,让面试官马上打电话通知调用方。🌚🌚
|
|
mseasonsApr 10, 2021
4
将失败了的信息写进一个优先级队列,然后每次执行任务之前都检查队列,有就发送。
实际上把轮询写进了代码逻辑,就像程序响应系统中断一样 |
|
skymeiApr 10, 2021
5
没有 ACK 机制吗,失败的没有 ACK 确认会自动进入延时队列,延时结束之后会自动进入原队列。
|
|
leafreApr 10, 2021
6
callback 持久化到 db 同时开个线程重试消息
|
|
ch2Apr 10, 2021 via iPhone
7
把定时任务改成循环监听,就是看门狗机制
|
|
RRLApr 10, 2021 via iPhone
8
Binlog listener
|
|
young1linApr 10, 2021
9
用 Binglog 机制不行么,或者 MySQL 的插件 mysql-udf-http 。或者像 Kafka 一样,用带有回调的方法发送消息,阻塞直到发送成功,外加 ACK = -1
|
|
qianxiaobangApr 10, 2021
10
加个发送结果,发送过去如果没有响应,就起几个定时任务( 10s,30s,60s,5min )来重试;长期没有结果再走定时跑批
|
|
jacksparrow414Apr 10, 2021
11
redis 的 list 结构? LPUSHRPOP 试一下
|
|
securityCodingApr 10, 2021 via Android
12
他想要的应该是 binlog
|
|
DoctorCatApr 10, 2021
13
写到 kafka/RabbitMQ/RocketMQ 理论上应该更快一些。
|
|
cubecubeApr 13, 2021
14
应该是想让你说延时队列处理,然后 balabala 队列的一些问题
|