本文基于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的session文件夹默认保存在同一个文件,随着访客的增多,访问的速度会非常慢,例如部分管理系统后台每天登陆1000次,1个月就创建了30000个session文件,一年后是多少?假设这个系统的用户是上万人呢?方法1:每个网站使用自己的session文件夹,代码如下:<?php $pat...
ThinkPHP中有一个debug调试功能,能输出报错文件的信息,并能看到这个函数被哪些函数调用,从框架的启动开始记录,特别方便调试。于是研究了下它的底层给予了实现。<?php //--框架核心--Start //框架内置错误处理 function errDealWith($er...
经常我们下载国外资源容易被墙,可以通过php脚本获取远程文件流然后输出给我们的浏览器来下载。<?php //设置下载文件的url $url = 'https://mirrors.huaweicloud.com/ubuntukylin/ubuntukylin-19....
本教程使用的定时任务基于EasyTak,EasyTask官方文档:https://gitee.com/392223903/EasyTask(1).安装tp5.0或者5.1composer create-project topthink/think=5.0.* tp5&n...
【一】....
/** * 设置进程标题 * @param string $title &nbs...