关键词搜索

源码搜索 ×
×

CentOS Nginx crontab 定时执行PHP代码命令任务(tp5.1 tp6 EasyTask) 每天重启执行PHP自定义命令

发布2022-06-25浏览1125次

详情内容

某个网站,需要执行自己写的定时任务,需要定时执行PHP命令

例子:TP5.1 安装插件 PHP常驻内存定时器 easy-task任务

PHP常驻内存定时器 easy-task/easy-task—— EasyTask: PHP常驻内存多进程任务管理器,支持定时任务(PHP resident memory multi-process task manager, supports timing tasks)

easy-task任务设置好定时执行任务后会每天自动执行事务,但是总是执行一段时间后,发现在执行的事务没有执行,

一、猜测:

可能执行的事务有太多数据,进程不能按时关闭,卡内存,过一段时间慢慢过多,就造成了执行不了。

二、解决的办法:

测试:发现每次用shell命令重启这些定时任务,重启那段时间定时任务都正常,过段时间就又不行

 解决办法思路:如果每天都自动把这些定时重启一次(相当用shell命令重启),那就解决了吗?

三、设置

3.1 运行定时任务

查看crontab定时任务列表:cat /var/spool/cron/root

查看crontab定时任务位置:cd /var/spool/cron/

  1. 09 07 * * * cd /data/wwwroot/default/www.xxx.cn;php think timedtasks stop force >> /data/wwwroot/default/www.xxx.cn/runtime/Task/Log/1.txt 2>&1
  2. 10 07 * * * cd /data/wwwroot/default/www.xxx.cn;php think timedtasks start >> /data/wwwroot/default/www.xxx.cn/runtime/Task/Log/1.txt 2>&1

/data/wwwroot/default/www.xxx.cn :自己网站根目录,是绝对路径,不是相对路径

easy-task任务 执行命令

php think task start  启动命令
php think task status 查询命令
php think task stop   关闭命令
php  think  task  stop  force   强制关闭命令

/data/wwwroot/default/www.xxx.cn/runtime/Task/Log/1.txt  记录上面两个命令的日志,看看运行情况

 

错误:/bin/sh: php: command not found

如果/Task/Log/1.txt中有这个错误:说明没有系统PATH没有配置或配置不全

解决方法:

  1. ln -s /usr/local/php56/bin/php /usr/bin/php
  2. ln -s /usr/local/php/bin/php /usr/bin/php

/usr/local/php56/bin/php 是服务器PHP安装路径,这些情况多数是服务器安装多个PHP版本

ln -s /usr/local/php/bin/php /usr/bin/php 这种是服务器只安装了一个PHP版本

 查看easy-task任务日志路径:/data/wwwroot/default/www.xxx.cn/runtime/Task/Log

这里参考:linux下无法执行PHP命令,错误 php: command not found_wang6168的博客-CSDN博客

其它相关:

CentOS Nginx crontab 定时任务 每小时备份一次命令 (删除5天以前某个后缀的文件)_我是高手高手高高手的博客-CSDN博客

linux CentOS Nginx 删除/查看定时任务列表命令 crontab命令文件位置(自动备份)_我是高手高手高高手的博客-CSDN博客_linux 查看定时任务

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载