php使用workerman实现秒极定时任务

网极科技2个月前代码笔记82

通过宝塔面板的计划任务,我们最多可以将定时任务设置在分钟级别,需要秒级别就不可完成了,所以需要借助其他程序,这里选择workerman.net
Workerman是一款PHP开发的开源高性能的PHP 应用容器。需要在终端运行,尽量选择Linux系统运行,windows系统会有很多问题。

1、环境检测

1、安装PHP>=5.4,并安装了pcntl、posix扩展
2、建议安装event扩展,但不是必须的(注意event扩展需要PHP>=5.4)
3、在Linux终端运行以下命令:

curl -Ss https://www.workerman.net/check | php


显示ok就是环境正常,不然下方会有提示,依照提示操作。

2、安装workerman

在需要安装的目录下,运行Linux终端,运行以下命令:

composer require workerman/workerman

如遇到报错可参考这个文章:解决composer异常

3、安装crontab

在刚才安装workerman的目录下,运行Linux终端,运行以下命令:

composer require workerman/crontab

4、编程测试

新建一个test.php文件,输入以下代码:

<?php
use Workerman\Worker;
require __DIR__ . '/vendor/autoload.php';

use Workerman\Crontab\Crontab;
$worker = new Worker();

// 设置时区,避免运行结果与预期不一致
date_default_timezone_set('PRC');

$worker->onWorkerStart = function () {
    // 每1秒执行.
    new Crontab('* * * * * *', function(){
        echo date('Y-m-d H:i:s')."\n";
    });
    /*
     // 每分钟的第1秒执行.
    new Crontab('1 * * * * *', function(){
        echo date('Y-m-d H:i:s')."\n";
    });
    // 每天的7点50执行,注意这里省略了秒位.
    new Crontab('50 7 * * *', function(){
        echo date('Y-m-d H:i:s')."\n";
    });*/
};

Worker::runAll();

5、运行测试

workerman程序的运行需要在Linux终端下,运行命令需要加start,如下

php test.php start

终端即可每秒输出时间

6、后台一直运行

workerman程序的后台运行需要在Linux终端下,运行命令需要加start -d,如下

php test.php start -d

建议使用Superviso进行进程守护
在宝塔面板后台–软件商店-搜索Superviso 安装
启动命令为:

php test.php restart -d

注意:这里用了restart 就是重启命令,而不是直接start
设置参数如下图

相关文章

【精选】PHP将股票日K线数据转换为半年K线数据

【精选】PHP将股票日K线数据转换为半年K线数据

将股票日K转换为半年K数据,可以用每年的7-1日作为分割点,分为上半年和下半年,开盘价应为分组开始的第一条数据的开盘价,收盘价应为分组数据的最后一条收盘价,最高和最低则为分组中的最高最低,成交量是累加...

fastadmin对接火车头采集器

fastadmin对接火车头采集器

fastadmin默认没有对接火车头采集器,本文介绍下对接方法: 1、创建获取栏目列表api 因为cms扩展应用中api获取栏目列表需要post提交apikey,在火车头中不支持使用,所以重新创建...

解决composer异常 Composer\Downloader\TransportException

解决composer异常 Composer\Downloader\TransportException

Composer在腾讯或阿里的服务器上经常会遇到报出如下异常: [Composer\Downloader\TransportException]...

利用php函数获取中文汉字拼音首字母

利用php函数获取中文汉字拼音首字母

要获取中文汉字拼音的首字母,你可以使用第三方库,例如 pinyin。以下是使用 pinyin 库的示例代码: 首先,你需要安装 pinyin 库。你可以通过 Composer 进行安装,在项目根目录...

明道云集成我司API接口范例

明道云集成我司API接口范例

有个客户购买了我司的智能快递地址解析接口,需要集成到明道云系统,所以写这个教程帮助大家。 第一步,在明道云创建如下表单其中第二个解析地址查询按钮为:左侧组件–高级–API查询 第二步,在集...

php绕过cloudfare进行网址数据采集,php网页采集程序

php绕过cloudfare进行网址数据采集,php网页采集程序

程序功能本程序使用浏览器内核,可伪装浏览器,对任意网址进行数据采集,采集结果以php程序进行二次处理。 支持对于单个网址进行采集,可自由设置循环次数。可多开不受限制。程序会调用浏览器内核打开网页...