![]() | 1 xuanbg 2021-04-10 08:07:20 +08:00 快是什么快?要消除的是定时任务的延时效果?这个没意义,现在发不出去的消息,马上重发大概率也是发不出去的。 |
3 noreplay 2021-04-10 08:51:49 +08:00 via Android 跟面试官说,记录完之后,发个通知给面试官,让面试官马上打电话通知调用方。 |
![]() | 4 mseasons 2021-04-10 09:04:34 +08:00 将失败了的信息写进一个优先级队列,然后每次执行任务之前都检查队列,有就发送。 实际上把轮询写进了代码逻辑,就像程序响应系统中断一样 |
![]() | 5 skymei 2021-04-10 09:09:28 +08:00 没有 ACK 机制吗,失败的没有 ACK 确认会自动进入延时队列,延时结束之后会自动进入原队列。 |
6 leafre 2021-04-10 09:38:08 +08:00 callback 持久化到 db 同时开个线程重试消息 |
![]() | 7 ch2 2021-04-10 09:45:01 +08:00 via iPhone 把定时任务改成循环监听,就是看门狗机制 |
![]() | 8 blackboom 2021-04-10 11:42:52 +08:00 via iPhone Binlog listener |
![]() | 9 young1lin 2021-04-10 11:51:21 +08:00 用 Binglog 机制不行么,或者 MySQL 的插件 mysql-udf-http 。或者像 Kafka 一样,用带有回调的方法发送消息,阻塞直到发送成功,外加 ACK = -1 |
![]() | 10 qianxiaobang 2021-04-10 13:42:32 +08:00 加个发送结果,发送过去如果没有响应,就起几个定时任务( 10s,30s,60s,5min )来重试;长期没有结果再走定时跑批 |
11 jacksparrow414 2021-04-10 13:49:50 +08:00 redis 的 list 结构? LPUSHRPOP 试一下 |
12 securityCoding 2021-04-10 14:03:32 +08:00 via Android 他想要的应该是 binlog |
![]() | 13 DoctorCat 2021-04-10 19:13:11 +08:00 写到 kafka/RabbitMQ/RocketMQ 理论上应该更快一些。 |
![]() | 14 cubecube 2021-04-13 00:49:24 +08:00 应该是想让你说延时队列处理,然后 balabala 队列的一些问题 |