thinkphp6毫秒级task定时任务(后台运行)
短信预约 -IT技能 免费直播动态提醒
1.Composer安装
composer require easy-task/easy-task
2. 创建类
php think make:command Task task
<?phpdeclare (strict_types=1);namespace app\command;use think\console\Command;use think\console\Input;use think\console\input\Argument;use think\console\input\Option;use think\console\Output;class Task extends Command{ protected function configure() { //设置名称为task $this->setName('task') //增加一个命令参数 ->addArgument('action', Argument::OPTIONAL, "action", '') ->addArgument('force', Argument::OPTIONAL, "force", ''); } protected function execute(Input $input, Output $output) { //获取输入参数 $action = trim($input->getArgument('action')); $force = trim($input->getArgument('force')); // 配置任务,每隔20秒写入txt日志1次 $task = new \EasyTask\Task(); $task->setRunTimePath('./runtime/'); $task->addFunc(function () { file_put_contents('task_log.txt',json_encode(['date'=>date('Y-m-d H:i:s')]).PHP_EOL,FILE_APPEND); }, 'request', 20, 1);; // 根据命令执行 if ($action == 'start') { $task->setDaemon(true); //后台进程守护 $task->start(); } elseif ($action == 'status') { $task->status(); } elseif ($action == 'stop') { $force = ($force == 'force'); //是否强制停止 $task->stop($force); } else { exit('Command is not exist'); } }}
3.配置config\console.php文件
<?php// +----------------------------------------------------------------------// | 控制台配置// +----------------------------------------------------------------------return [ // 指令定义 'commands' => [ 'task' => 'app\command\Task', ],];
php think task start 启动命令php think task status 查询命令php think task stop 关闭命令php think task stop force 强制关闭命令
来源地址:https://blog.csdn.net/qq_21273321/article/details/126230480
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341