php执行定时任务?
用户添加定时任务后如
每月30 号发工资
订单到期未付款恢复
这种是如何做的?
直接在Linux 操作crontab 可以,
但是用户添加一个任务就加到 crontab 怎么实现?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
用户添加定时任务后如
每月30 号发工资
订单到期未付款恢复
这种是如何做的?
直接在Linux 操作crontab 可以,
但是用户添加一个任务就加到 crontab 怎么实现?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(11)
关键词: shell_exec ,php 安全模式
shell_exec 解决你添加定时任务的问题 ,php 安全模式开启的时候是没法使用 shell_exec 函数的。
定时任务可以存储到MySQL或者文件里,然后用crontab 去跑mysql或文件
使用crontab,如:
可以参考
laravel
的任务调度
。即使不用laravel
,也可以参考laravel
的任务调度
的实现思路, 其实原理很简单:crontab任务
,每分钟执行一次某个php
脚本。mysql 存储过程也可以跑定时任务
用独立的定时任务中间件管理, 用户定时任务不适合放到crontab中
我引用一下Naist
首先你要会使用crontab,没错,不会用就自己百度了,这里不做回答,可以写一篇博客了。
然后在命令行
了之后
有可能不是crontab,我之前用
node.js
写过一个用户可以自己定时的WebSocket,在后台挂起。当用户向这个WebSocket发送请求时,把定时的时间记录到一个缓存文件中(JSON),然后设置node.js
自己的定时器。如果这个WebSocket服务挂掉了的话,只要重新启动这个后台脚本,脚本会通过缓存的JSON里记录的时间,重新设定计划任务。这里我可以放一些代码,核心的代码被省略,另外加了点注释供参考
php的话,选择定时任务只能用crontab,这样最短的轮训时间是1秒
如果想要1秒以内,就得另寻他法了。
可以用队列哦 然后后台用个进程处理就行了 swoole等都可以做后台进程
有些个回答的方法并不太好,不用为好,小心为妙。
1.如果不一定非要php解决,那么采用linux的crontab
2.如果要用php解决,那么使用workerman( 这么简单一个需求,我就不让你用swoole了,太折腾 )
3.如果要用php解决,而且非要自己撸,请扩展如下简单粗暴的代码:
不用看了,我的回答的最全面最好使的