在ThinkPHP框架中,调度器是实现定时任务的重要组件。要使用调度器,首先需要在项目根目录下的/application/command
目录下创建一个名为Cron.php
的文件,并定义自己的定时任务方法。例如,定义一个每天早上9点执行的任务:
namespace app\command;
use think\console\Command;
use think\console\Input;
use think\console\Output;
class Cron extends Command
{
protected function configure()
{
$this->setName('cron')
->setDescription('daily 9:00 cron task');
}
protected function execute(Input $input, Output $output)
{
// 在这里编写定时任务代码
$output->writeln('开始执行每日9点的定时任务');
}
}
接下来,可以在命令行窗口中运行php think cron
命令来手动执行该定时任务。但如果想要让该任务自动定时执行,则需要配置计划任务(也称为“定时触发器”)。计划任务的配置方式有多种,例如通过服务器的crontab来配置。
在Linux系统中,打开终端并输入crontab -e
命令即可编辑crontab配置文件。假设想要每天早上9点执行一次上面定义的定时任务,则可以在该文件中添加以下一行配置:
0 9 * * * php /path/to/think cron
其中,/path/to/think
为项目根目录下的think
文件的路径。
保存该配置文件后,系统会每天在9点整自动执行一次该定时任务。