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

网极科技11个月前代码笔记944

通过宝塔面板的计划任务,我们最多可以将定时任务设置在分钟级别,需要秒级别就不可完成了,所以需要借助其他程序,这里选择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
设置参数如下图

相关文章

为什么要用ServerLess架构部署企业官网

为什么要用ServerLess架构部署企业官网

企业官网作为企业的重要对外门户,承载的功能不然而喻。 企业官网经常遇到的问题被攻击很多非技术企业对于网站的运维并不擅长,更加没有专业的工程师进行运维,遇到攻击,手足无措,只能眼睁睁看着网站打...

fastadmin对接火车头采集器

fastadmin对接火车头采集器

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

如何用一个桌面客户端管理多个宝塔面板

如何用一个桌面客户端管理多个宝塔面板

宝塔新出了一个桌面客户端“堡塔多机管理”,可以免费绑定多个宝塔面板统一管理。软件地址:https://www.bt.cn/new/product_pc.html效果图:多机管理效率提升了不少,而且提供...

table表格css样式

table表格css样式

效果图 table { border-collapse: collapse; margin: 0 auto;...

win11右键菜单改回win10小工具

win11右键菜单改回win10小工具

最近将电脑升级到了windows11,但是右键菜单显示不完整,需要点击两侧才有重命名那些功能,感觉很不方便,需要改回win10那样的菜单,于是做了这个小工具,直接运行即可修改。如下图: 提交修改后,...

将网页文字保存为Word文档的PHP代码

将网页文字保存为Word文档的PHP代码

以下是将网页文字保存为Word文档的PHP代码示例: <?php // 获取网页内容并保存为Word文件 function saveAsWord($url, $fileName) {...