最近在思考队列怎么一直开启,一直执行的问题,想到了可以写一个死循环,不停的去执行
用nohup挂在就可以了
因为mac自带PHP和apahce
只需要用root用户启动apache
sudo apachectl restart
PHP启动方式为 php-fpm start 一般情况下都是默认启动的;
接着要知道项目运行的目录为 /Library/WebServer/Documents;
默认运行的是/Library/WebServer/Documents/index.php文件;
我们可以先写一个简单的demo来测试是否一直开着进程在执;
直接在mac终端执行 sudo nohup php /Library/WebServer/Documents/index.php>>/Library/WebServer/Documents/hi.txt
查看是否成功
cat /Library/WebServer/Documents/hi.txt
成功了的 ok
当然这个方式也可以用来执行队列,定时任务之类的
比如这个tp5项目
直接运行
php 文件目录/think test即可
php /Library/WebServer/Documents/tp5/think test
如果是写定时任务的话,可以根据情况来写
分0-59
时0-12
天1-31
月1-12
周0-7
比如每天凌晨0:01执行date.php
1 0 * * * php /Library/WebServer/Documents/tp5/think date
每5分钟执行Minutes.php
*/5 * * * * php /Library/WebServer/Documents/tp5/think minutes
每月第一天中午12点整执行Month.php
0 12 1 * * php /Library/WebServer/Documents/tp5/think month
如果要测试就可以把输出写到日志或者写到新的文件里面
*/2 * * * * php /Library/WebServer/Documents/tp5/think date >>/Library/WebServer/Documents/tp5/test.txt
这句话表示每两分钟服务器执行以下php think date,且把输出写到test.txt文件
经过测试这个也是成功的,前提是先要把定时任务写到crontab中
使用root用户来编写定时任务
sudo -i 输入密码
crontab -e 编写定时任务 按键盘i出现insert 表示可以写入 写好后按esc ,再按!wq既可强制保存退出
crontab -l 查看定时任务列表
cat /Library/WebServer/Documents/tp5/test.txt可以查看是否写入成功