会员到期提醒这种定时任务得思考

今天在美团下订单,没有付款,美团提醒五分钟内不付款就会取消该订单,鉴于程序员的思想,突然想知道这种类似的行为是怎么实现的,于是就想实现一个类似的功能,思考方案如下:

  1. 当下单时后台创建一个定时任务,在五分钟后如未付款,执行定时任务
  2. 数据库里面存储相关信息,固定时间段检索该表,验证订单相应的状态
  3. 有个不中断的进程一直重复进行检索任务

仔细想了想,感觉自己想的这些方案简直很扯,由于自己没有接触过类似的业务,想知道做过类似服务的大牛对于这个业务是怎么思考,实现的。不吝赐教哈!:laughing:

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 9

用延时队列会好点吧

7年前 评论

使用队列,下单的时候把订单号丢到队列里面去,设置5分钟之后执行,5分钟之后再去查询订单的状态,然后做相应的操作。

找一个支持延迟执行的队列。

7年前 评论

做过类似。目前实现是用nodejs实现。前段时间研究了一下Swoole

来安利一下国人开发且被PHP官方收录的PHP扩展Swoole. 其中有个一次性使用的定时器

在指定的时间后执行函数,需要swoole-1.7.7以上版本。

swoole_server->after(int $after_time_ms, mixed $callback_function);

swoole_server::after函数是一个一次性定时器,执行完成后就会销毁。

http://wiki.swoole.com/wiki/page/320.html

7年前 评论

@Frewen 好的,谢谢推荐,正在看swoole文档。:laughing:

7年前 评论

@maxiaoxiong 不过这个定时器有个bug,它在2.0beta中才修复 :joy:

7年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!