关于倒计时任务?

发布于 2021-12-01 22:48:09 字数 58 浏览 770 评论 8

比如有这样的场景,用户下单后,如果30分钟内不支付,则把用户的订单取消。

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

把回忆走一遍 2021-12-05 12:02:26

1.定时任务扫描全表。

2.消息延迟投递。

3.一天的定时任务 + 用户触发判断。

小情绪 2021-12-05 11:36:37

这个就是具体业务实现了,如在创建订单时写上订单自动取消时间,然后每几秒钟轮训取消时间小于等于当前时间且未支付的订单,然后执行你的取消业务即可!

笑红尘 2021-12-05 10:32:29

elastic-job是不支持,如果你想用任务解决的话,可以用1,2

倚栏听风 2021-12-05 09:57:18

引用来自“09M73”的评论

1.队列解决

    redis key expire监听机制(pub/sub)

    队列延时消息(rabbitmq等)

2.任务

    1.quartz(支持单个任务或批处理)

    2.LTS(分布式,支持单个任务或批处理)

    3.elastic-job(分布式,私网云,批处理)

把昨日还给我 2021-12-05 09:52:38

引用来自“蓝水晶飞机”的评论

订单创建之后,把订单信息(订单ID、订单创建时间、过期时间)加载到缓存(Redis等),定时任务程序每隔10秒轮训一次,将已过期的订单的取消状态更新到数据库(更新时先检查订单状态,如果订单是已支付则忽略更新)。

如果期间,订单支付成功了,则从缓存中移除订单信息。

 

定时器任务,调度应该也是轮询的。

眉黛浅 2021-12-05 08:09:49

1.队列解决

    redis key expire监听机制(pub/sub)

    队列延时消息(rabbitmq等)

2.任务

    1.quartz(支持单个任务或批处理)

    2.LTS(分布式,支持单个任务或批处理)

    3.elastic-job(分布式,私网云,批处理)

海之角 2021-12-05 06:28:56

订单创建之后,把订单信息(订单ID、订单创建时间、过期时间)加载到缓存(Redis等),定时任务程序每隔10秒轮训一次,将已过期的订单的取消状态更新到数据库(更新时先检查订单状态,如果订单是已支付则忽略更新)。

如果期间,订单支付成功了,则从缓存中移除订单信息。

 

定时器任务,调度应该也是轮询的。

情场扛把子 2021-12-05 02:03:07

spring定时任务,隔一定时间执行一次检查未支付订单,过订单超时修改状态

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文