tp5+mysql实现消息队列,并在mac系统下定时执行 - Go语言中文社区

tp5+mysql实现消息队列,并在mac系统下定时执行


Demo简介

订单系统和配货系统之间的信息传递,当订单系统压力比较大时或者出现故障时不影响到配货系统,所以就用了消息队列和定时系统。

Demo准备

1.创建一张数据表重点内容
status:0未处理,1已完成,2.处理中
这里写图片描述

2.下载tp5
3.mac系统
4.php7.0(我的是php7.0)

Demo流程

1.客户下单(如果是在高并发的情况下,订单系统压力会很大)
2.把订单信息保存到数据表中,并且status为0
3.配送首先更新两条数据把status改为2(每次处理两条订单)
4.配送处理(这个过程的代码根据实际业务,这里没有说明)
5.配送完成后,修改订单状态,并且更新订单时间

代码实现

1.我先把模型中的代码展示出来,主要是对订单操作的封装

这里写图片描述

2.添加订单
我是通过这种方式来添加订单
这里写图片描述

添加订单代码
这里写图片描述

3.mysql消息队列实现配货系统
这里写图片描述

在Mac系统下实现定时消息队列

1.首先编写.sh文件
这里写图片描述

2.在mac命令行下执行 crontab -e (用来添加系统定时任务)
这里写图片描述
上面命令的功能是,每分钟执行一次那个路径下的.sh文件,并且把执行结果输出到那个路径下log.log日志文件中

最后执行结果

这里写图片描述

在此过程中遇到的问题

这里写图片描述

我的解决步骤
1.在命令行输入.sh中写的php命令发现成功,认为是文件权限的问题
2.把tp5中的所有文件权限全部更改为可读可写(事实证明是错误的)
3.最后通过度娘发现,如果是在本地测试的话,需要把tp5中database文件中的localhost改为127.0.0.1可能是个bug,至今不懂。如果有知道的欢迎留言

参考第三方

感谢慕课网课程http://www.imooc.com/video/15164
tp5官方论坛

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_34908844/article/details/77148727
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-07 21:46:14
  • 阅读 ( 1431 )
  • 分类:数据库

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢