有一个订单表,如何实现订单自创建起十分钟如果状态还是支付中,将状态设置成支付失败?
定时器能设定开始时间为该订单为创建时间吗
【java】如何实现订单自创建起十分钟如果状态还是支付中,将状态设置成支付失败
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 帆影匆匆 2021-09-08 17:38关注
如果是线上运行的分布式项目,建议用中间件实现
1.延迟消息队列,rabbitmq或者rocketmq都可以
2.redis实现延迟队列
具体:
计算好检测状态时间
用zset实现,score是延迟执行时间,key可以为一个json字符串
程序中启动定时任务去轮询,获取score<=当前时间的(注意这里得是加锁)具体选择哪个得看实际项目,如果你项目中已经有集成了消息队列,并且延迟的间隔不多,比如说(10s、2s)可以考虑否则话我建议还是redis,简单容易集成
如果是单体项目的话,实现方式也很多
1.java延迟执行线程池
2.定时器
等等本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
- ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
- ¥15 相敏解调 matlab
- ¥15 求lingo代码和思路
- ¥15 公交车和无人机协同运输
- ¥15 stm32代码移植没反应
- ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
- ¥100 连续两帧图像高速减法
- ¥15 如何绘制动力学系统的相图
- ¥15 对接wps接口实现获取元数据