linux thinkphp 计划任务_Thinkphp5 主动式 计划任务 支持windows和linux

百度搜索过相关的php计划任务的资料,特别是搜索thinkphp的计划任务,目前能明确实现的都是被动式的,就是通过tp3.2自带的计划任务类实现,通过挂钩子的形式,用户访问网站的时候就执行计划任务,这种不是我们需要,我们需要的是全自动,而且配置方便的。在GitHub上搜索的php计划任务有点脱离的tp5框架,如果用的话,需要加载tp5的底层类才行。

我实现的方法就是利用tp5命令行的功能,它能加载底层而且可以让框架在命令行上运行,这样最后部署的时候都可以很容易适应windows和linux,另外一个就是引用了linux的crontab思想,我把配置都放到同一个项目文件下面,这样就不需要为每一个计划任务去设置系统计划配置了。

第一步:设置计划任务的配置

在application\config.php下面添加这个配置,熟悉crontab的朋友就觉得这个格式是不是很像。

/*每分钟*/

/*每小时 某分*/

/*每天 某时:某分*/

/*每周-某天 某时:某分 0=周日*/

/*每月-某天 某时:某分*/

/*某月-某日 某时-某分*/

/*某年-某月-某日 某时-某分*/

'sys_crond_timer' => array('*', '*:i', 'H:i', '@-w H:i', '*-d H:i', 'm-d H:i

第二步:计划任务的核心代码。这一步已经帮大家实现了,大家需要理解的就是tp5的命令行实现就可以。在application\common\lib下面创建Crond.php文件。复制下面代码</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ThinkPHP 6 支持基于 Linux crontab计划任务,可以通过在系统的 crontab 中设置定时任务来实现。以下是实现计划任务的步骤: 1. 在 `app/command` 目录下创建一个 `Crontab.php` 命令文件,用于定义需要执行的计划任务。在文件中通过继承 `\think\console\Command` 类和实现 `configure` 和 `execute` 方法来定义计划任务。 ```php <?php namespace app\command; use think\console\Command; use think\console\Input; use think\console\Output; class Crontab extends Command { protected function configure() { $this->setName('crontab')->setDescription('Crontab Command'); } protected function execute(Input $input, Output $output) { // 执行计划任务的代码 $output->writeln('Crontab Command'); } } ``` 2. 在 `app/command.php` 文件中注册定义的计划任务。 ```php <?php // 注册命令 return [ 'app\command\Crontab', ]; ``` 3. 在 Linux 系统的 crontab 中设置定时任务,例如: ``` * * * * * /usr/local/php/bin/php /path/to/think crontab >/dev/null 2>&1 ``` 该命令表示每分钟执行一次 `/path/to/think crontab` 命令,其中 `/path/to/think` 为 ThinkPHP 6 项目的入口文件所在的路径,`crontab` 为需要执行的计划任务的名称,`>/dev/null 2>&1` 表示将输出重定向到空设备,以避免输出干扰 crontab 的正常运行。 注意:在使用 crontab 执行定时任务时,需要注意 PHP 环境变量的设置,以及 PHP 执行权限的问题,否则可能会导致计划任务无法正常执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值