IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> php 使用宝塔执行长时间问题 -> 正文阅读

[PHP知识库]php 使用宝塔执行长时间问题

客户的需求是,半夜三点清算。由于操作非常耗时间,在五分钟以上。这里总结一下办法,让php半夜三点长时间执行。不超时,不崩溃。
宝塔本身有自带定时任务。

1,用宝塔定时半夜三点,访问网站,网站执行不就好了?

根据下面设置,成功!


//ignore_user_abort(true);
// 设置时区
 date_default_timezone_set('PRC');
 // 避免超时报错
 set_time_limit(0);
 // 避免内存不足
 ini_set('memory_limit', '-1');
 // 响应完成, 关闭连接
  fastcgi_finish_request();

 
echo date('Y-m-d H:i:s');
echo '------';
for($i=1;$i<20;$i++){
	var_dump($i);
	file_put_contents('/www/wwwroot/tp.com/lizhili.txt',$i.'--'.date('Y-m-d H:i:s').PHP_EOL,FILE_APPEND);
	sleep(10);
}

file_put_contents('/www/wwwroot/tp.com/222.txt',date('Y-m-d H:i:s'),FILE_APPEND);

echo date('Y-m-d H:i:s');
echo '------';
echo 'ok';
		

2,thinkphp 安装上了workerman ,使用workerman的定时功能

根据下面成功,但是注意,这个重启就失效了,可以根据我以前的文章设置,开机自启。https://blog.csdn.net/weixin_42249565/article/details/122715565

//先安装 workerman的插件,我使用tp5.1  
composer require topthink/think-worker=2.0.*
//然后安装 定时插件
composer require workerman/crontab
<?php
namespace app\http;
use \Workerman\Lib\Timer;
use think\worker\Server;
use think\Db;
use Workerman\Crontab\Crontab;
class Worker extends Server
{

    protected $protocol    = 'tcp'; // 协议 支持 tcp udp unix http websocket text
    protected $host       = '0.0.0.0'; // 监听地址
    protected $port     = 2347; // 监听端口

    protected $name = 'thinkphp';
    protected $count      = 1;
	protected $lian=[];
	public function onWorkerStart($worker){
        date_default_timezone_set('PRC');

        // 每分钟的第2秒执行.//这里应该使用正确的时间
        new Crontab('2 * * * * *', function(){
            $name=date('YmdHis');
            echo '------';
            for($i=1;$i<20;$i++){
                var_dump($i);
                file_put_contents($name.'.txt',$i.'--'.date('Y-m-d H:i:s').PHP_EOL,FILE_APPEND);
                sleep(10);
            }

            file_put_contents($name.'2.txt',date('Y-m-d H:i:s'),FILE_APPEND);

            echo date('Y-m-d H:i:s');
            echo '------';
            echo 'ok';
        });


		//这个是定时器示例
//		 $time_interval = 5;
//		 Timer::add($time_interval, function()
//		 {


//		 });
	}
}

3,使用shell 执行thinkphp 方法

利用宝塔定时器,shell 执行thinkphp 默认命令

//新建入口文件 ,我习惯绑定模块,不喜欢绑定的也可以
namespace think;
// 加载基础文件
require __DIR__ . '/../thinkphp/base.php';
// 支持事先使用静态方法设置Request对象和Config对象
// 执行应用并响应
Container::get('app')->bind('worker')->run()->send();

//worker文件夹里面文件index.php文件
<?php
namespace app\worker\controller;
use think\Db;
class Index
{
    public function index()
    {
        $name=date('YmdHis');
		echo '------';
		for($i=1;$i<20;$i++){
			var_dump($i);
			file_put_contents($name.'.txt',$i.'--'.date('Y-m-d H:i:s').PHP_EOL,FILE_APPEND);
			sleep(10);
		}

		file_put_contents($name.'2.txt',date('Y-m-d H:i:s'),FILE_APPEND);

		echo date('Y-m-d H:i:s');
		echo '------';
		echo 'ok';
    }
}

利用宝塔定时器,执行shell

#!/bin/bash
cd /www/wwwroot/tp.com
php public/worker.php index/index

4,使用shell 执行thinkphp 自定义命令,用命令调用方法

这个我不写了,和3类似,不是很难,自己写吧,就是新建一个 command 然后调用 thinkphp里面的方法

5,利用tcp或者rpc 调用 ,thinkphp 用workerman或者swoole 建的服务!

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 17:20:14  更:2022-04-18 17:20:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 16:41:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计