代码拉取完成,页面将自动刷新
同步操作将从 **小草**/taskPHP 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
对自定义命令行感兴趣的可以去看 thinkphp5官方手册
第一步,安装最新的taskPHP
composer require taskphp/taskphp dev-master
如果下载不下来,可以尝试修改composer镜像地址:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
第二步, 配置TP5项目的 application/command.php
文件
<?php
return [
'app\index\command\Taskphp',
];
第三步, 创建Taskphp命令文件 application/index/command/Taskphp.php
<?php
namespace app\index\command;
use think\console\Command;
use think\console\Input;
use think\console\Output;
use think\console\input\Argument;
use think\console\input\Option;
// 载入taskphp入口文件
require_once dirname(APP_PATH).'/vendor/taskphp/taskphp/src/taskphp/base.php';
class Taskphp extends Command{
protected function get_config(){
return [
//任务列表
'task_list'=>[
//key为任务名,多任务下名称必须唯一
'demo'=>[
'callback'=>['app\\index\\command\\Demo','run'],//任务调用:类名和方法
//指定任务进程最大内存 系统默认为512M
'worker_memory' =>'1024M',
//开启任务进程的多线程模式
'worker_pthreads' =>false,
//任务的进程数 系统默认1
'worker_count'=>1,
//crontad格式 :秒 分 时 天 月 年 周
'crontab' =>'/5 * * * * * *',
],
],
];
}
protected function configure(){
$this->addArgument('param', Argument::OPTIONAL);
// 设置命令名称
$this->setName($_SERVER['argv'][1])->setDescription('this is a taskphp!');
}
protected function execute(Input $input, Output $output){
//系统配置
$config= $this->get_config();
//加载配置信息
\taskphp\Config::load($config);
//定义启动文件入口标记
define("START_PATH", dirname(APP_PATH));
//运行框架
\taskphp\App::run();
}
}
第四步, 创建Demo任务文件 application/index/command/Demo.php
namespace app\index\command;
use taskphp\Utils;
/**
* 测试任务
*/
class Demo{
/**
* demo任务入口
*/
public static function run(){
Utils::log('demo1任务运行成功');
//可以调用thinkphp内的json函数
//Utils::log(json(['message'=>'hello taskphp']));
}
}
进入tp5根目录
)php think start
命令列表
start [all|任务名] 启动 可不带参数默认all
close all 结束框架 必带参数all
如果需要完整的整合demo源码 加群taskPHP ①群:375841535(空)群共享里面获取。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。