Thinkphp框架下跑php脚本 nohup &

第一步:框架里-项目目录里command.php里增加'app\command\Insert‘ 、注(Insert:这个可以改成你需要命名的)

第二部:框架里-项目目录里command目录下创建:Insert.php(Insert就是你刚刚需要命名的)

打开Insert.php 创建:

<?php

namespace app\command;

use think\console\Command;

use think\Db;

class Insert extends Command

{

//配置你要触发的名称
    protected function configure()
    {

       //(脚本的名称)      (名称)
        $this->setName('insert')->setDescription('添加数据');
    }

   //将要执行的代码放到这
    protected function execute(Input $input, Output $output)
    {
        Db::table("keyword")->insert                
       (['uid'=>8888,'openid'=>'INbjsj7286163bBSNJb','phone'=>'176005370561111','keyword'=>'1','keyword2'=>'2','keywr']);
    }

}

如果是linux上跑这个php脚本的话:在项目根目录下:php think insert   注:(这个insert是configure()方法里的$this->setName('insert'))

windows上的话:就是打开项目根目录:php think insert 就可以了,

如果想一直让当前脚本跑起来并且在后台一直运行不挂断可以使用:nohup      &

nohup  php  think  insert  >/dev/null  2>&1  &

setsid php think host-report > /home/www/PC-MRST-S20/MQTT.log &

如果跑成功了数据库keyword表里就会增加一条数据

我们每一次请求都是在http去web服务器都会经过nginx服务器进行请求php,php-fpm得到后会开启进程和线程fast-cig,如果我们在处理大数据或者请求比较频繁的情况下,每一次请求nginx都会去等待php处理结果后返回,这就可能导致php还在处理的时候,nginx这个web服务器请求时间太长就报504或者502,网关请求超时的情况。这个时候我们就不能使用http去请求,可以选择请求php脚本了,当然我最近在做每半小时处理6000个用户,跑php脚本可能满足,如果太大的话,可以选择用消息队列,异步进行存储

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章