misuoka/work-loop

循环执行任务的后台服务程序 Background service program that executes tasks cyclically

v0.1.0 2022-11-11 07:39 UTC

This package is auto-updated.

Last update: 2025-05-11 13:49:56 UTC


README

循环执行任务的后台服务程序

使用方法

使用 composer 进行安装 composer require misuoka/work-loop

按如下配置执行脚本,在 workers 数组里配置具体的业务代码,业务类必须实现接口 misuoka\WorkLoop\WorkInterface

# 假设文件:index.php 

require(__DIR__ . '/../vendor/autoload.php');

use misuoka\WorkLoop\WorkGo;

$config = [
    'name'         => 'XXX服务后台业务程序', // 自定义项目名称
    'version'      => 'v1.0',              // 自定义项目版本
    'display_type' => 0, // UI形式。0:默认输出方式;1:重复刷新格式化的UI
    'workers' => [
        // 'workname' => [
        //     'enabled'      => true,  // 启用任务
        //     'logic'        => \app\logic\Xxxx::class, // 具体业务类,必须实现接口 misuoka\WorkLoop\WorkInterface
        //     'sleeptime'    => 0.3,   // 秒,支持小数。循环执行任务的休眠时间
        //     'working_time' => 10,    // 工作时长,单位分钟。进程循环执行的时间。时间到了之后,会再次启动进程
        // ],
    ],
];

$wd = new WorkGo($config);
$wd->run();

在脚本文件中配置完成后,在 shell 终端中执行如下命令。

# Usage: php script_name.php {start|restart|stop|help} [-d]
# -d 表示以守护进程的方式运行脚本
php script_name.php start