1
opengps 2023-10-12 19:06:55 +08:00
参考分布式锁的超时设计:
额外用一个消息队列或者第三方公共缓存服务,标记下某个任务进入正在处理状态,设定上一个安全合理的正常处理超时,真超时可能是丢失了,重新处理一遍就行 |
2
night98 2023-10-12 23:29:58 +08:00
上 mq ,不然自己实现更麻烦。或者加个类似 sqllite 的本地数据库。
|
3
lsk569937453 2023-10-13 09:09:01 +08:00
所以有了 mq 啊
|
4
bill110100 2023-10-13 10:37:38 +08:00
mq 记录任务,确定消费成功再从 mq 里去除。
|
5
NoKey OP 如果用 mq 的话,那么一个后台服务很多场景都会用到 mq 了,会不会很重啊
|
6
Aresxue 2023-10-13 11:41:44 +08:00
mq or 定时任务
|
7
mmdsun 2023-10-13 11:58:24 +08:00
任务调度框架? Spring Batch 、xxl-job 、PowerJob
|
8
hdfg159 2023-10-13 14:13:41 +08:00
消息队列
|
9
j1132888093 2023-10-13 17:37:55 +08:00
建个通用的任务表,处理完了标识一下
|
10
trzzzz 2023-10-13 22:57:31 +08:00
不想引入 mq ,就得找个地方存起来,存数据库,执行完更新下状态
|
11
heqingpan 2023-10-14 12:25:46 +08:00 via Android
一定要找个地方存起来才行,不然重启在内存的数据就没了。
可以用 mq 也可以用通用任务表(用完标记删除或物理删除都可以),特定场地存本地文件也可以。 |
12
40xEQBKvMvxaRO8y 268 天前
一个简单的处理办法,重启的时候指定所谓的优雅停止,也就是说不要 kill -9 ,kill -2 + sleep 10 秒,来让应用处理正在执行的任务同时停止外部新请求的进入,然后再加上单独的定时任务服务或者建个任务表定时扫描的形式
|