laravel和thinkphp 定时任务如何设置?

定时计划任务如何设计的?
不要出现以下的MySQL问题:
1、MySQL have go away
2、PDO::prepare(): send of 93 bytes failed with errno=32 Broken pipe
等等问题。

目前采用的是command+Workerman。常驻进程就会出现很多MySQL问题,搜索资料已经两个星期了没有好的解决办法。

断开重新链接什么的也不起作用,数据都更新一半或者有没有更新都不知道。真服了。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 17

我比较简单 比如要定时执行某个方法 直接用宝塔的定时任务url访问那个方法

4个月前 评论

这好像和 定时任务没关系

Laravel

4个月前 评论
转打瞎比比 (楼主) 4个月前

常驻进程就要捕捉异常,laravel > 5.1版好像有断开重连的配置项

'options' => [
    PDO::ATTR_PERSISTENT => true,
],
4个月前 评论
Complicated

俺没明白啊,你这个定时任务跟常驻进程有啥关系?非得用 workman这样的去实现定时任务吗?

4个月前 评论
Complicated

你要是实现秒级的定时任务,你就写个 artisan 命令,里边搞个while(true){ //业务逻辑 //睡200毫秒} 然后用守护进程把这个 artisan命令 监听下,就可以完全可以了啊。我就这么搞的,从来没出过你说的 mysql的那两个问题

4个月前 评论

这个?

file

4个月前 评论

laravel和tp都实现了断线重连吧,说一下你的版本

4个月前 评论
转打瞎比比 (楼主) 4个月前

file

我看了,默认是没有配置这个参数的,你可以试试

4个月前 评论
转打瞎比比 (楼主) 4个月前

你这个是上古操作

4个月前 评论
转打瞎比比 (楼主) 4个月前

直接写1个command脚本:1、配合宝塔的定时任务功能,定期执行tp的think命令或者laravel的artisan命令;2、在command脚本里面写个whil死循环,业务执行完后就sleep休眠一段时间,这个可以配合宝塔的supervisor来进行守护进程(也可以自己写一个定时脚本来进行进程守护)

4个月前 评论

这边建议及时销毁MySQL连接对象重连。 最简单的做法就是在循环体里面new 一个连接对象,业务逻辑执行完之后 unset 掉。然后开始下一次循环

3个月前 评论

定时任务其实可以用go写的jiacrontab和java写的xxl-job-admin,用laravel写一个自定义命令console.用这些定时任务平台来触发php命令.比用php的常驻内存实现的定时任务效果要好.有日志,有错误警告,脚本超时提示.

3个月前 评论

如果是thinkphp的话,可以在database.php配置文件的connections.mysql.break_reconnect设置为true,开启断线重连就好了

3个月前 评论

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