本文基于Laravel Framework 6.17.1版本
(1).创建项目(依赖真多,如此臃肿)
composer create-project --prefer-dist laravel/laravel blog
(2).安装定时任务composer包
composer require think-task/think-task
(3).执行创建命令行处理类文件(自动生成了文件app/Console/Commands/Task.php)
php artisan make:command Task
(4).修改第3步创建的app/Console/Commands/Task.php为以下内容
<?php namespace App\Console\Commands; use Illuminate\Console\Command; class Task extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = 'task{action=start}'; /** * The console command description. * * @var string */ protected $description = 'Command description'; /** * Create a new command instance. * * @return void */ public function __construct() { parent::__construct(); } /** * Execute the console command. * * @return mixed */ public function handle() { $action = $this->argument('action'); // 初始化EasyTask $task = new \ThinkTask\Task(); // 设置项目名称 $task->setPrefix('Think'); // 设置后台运行 $task->setDaemon(false); // 设置日志保存目录 $task->setRunTimePath('./bootstrap/cache/'); // 添加闭包任务,开2个进程5s执行1次访问网址 $task->addFunc(function () { @file_get_contents('http://xingxinghan.cn/?id=6'); }, 'Curl_1', 5, 3); // 添加执行tp默认控制器的方法,开1个进程10s执行1次访问网址 //$task->addClass('\app\index\controller\Index', 'index', 'Curl_2', 10, 1); // 根据命令执行 if ($action == 'start') { $task->start(); } if ($action == 'status') { $task->status(); } if ($action == 'stop') { $task->stop(); } } }
(5).将上面的文件注册一下(修改app/Console/Kernel.php文件)
protected $commands = [ \App\Console\Commands\Task::class ];
(6).执行命令(windows请使用cmd,由于cmd不支持utf8编码,可以在本站搜索关键字“乱码”相关文章处理),:
php artisan task start 启动命令 php artisan task status 查询命令 php artisan task stop 关闭命令
提示:后台执行失败可修改为前台启动查看问题或者查看日志文件,有问题可以在qq群反馈bug
<?php /** * 将base64字符串创建为图片文件 * @param string $base64 base64原始字符串 * @param string $path&...
function objtoarr($obj){ $ret = array(); foreach($obj as $key =>$value){ if(gettype($value) == 'arr...
源码:特别适用于微信支付中通知微信支付网关function array2xml($arr, $level = 1) { $s = $level == 1 ? "<xml&g...
如果想在windows中执行php,并且让php脚本在后台运行,可以用下面的cmd命令start /b php D:\wwwroot\default\demo1\run.php例如上面的命令意思后台运行run.php,如果想用php编写异步代码: ...
使用php函数array_multisort()即可实现和SQL一样的order by排序. 例如我们需要对会员表按照主键降序排列,年龄升序排列://会员表数据 $list = []; $list[] = ['mid' =>&n...
上篇文章已经讲解arrayacces的原理,现在来讲解下arrayaccess的实际应用。一个大型的互联网项目中必然会存在各种配置信息,例如多种数据库信息:mysql,tidb,mongodb,redis,某个业务模块单独的配置信息如比例,额度等等,那么该如何治理配置信息?PHP项目中大部分的框架都...