tripteki/laravelphp-supervisor

Tript Teknologi 的 Laravel.php 监督器

1.0.0 2024-05-21 16:15 UTC

This package is auto-updated.

Last update: 2024-09-21 17:05:07 UTC


README

此包提供类似于 supervisor-likeasync-likechild-process-like 等功能,以便轻松构建由事件驱动器驱动的 Laravel 项目。

入门

安装

$ composer require tripteki/laravelphp-supervisor
$ npm install pm2 && npm install --save-dev chokidar
$ pecl install swoole

如何使用

  • 运行以下命令将配置文件发布到您的项目目录中:
php artisan vendor:publish --tag=tripteki-laravelphp-supervisor

用法

php artisan supervisor:

选项

  • start ... : 启动监督器。
    • 前台 (默认)
    • 后台
  • reload : 重新加载后台监督器。
  • stop : 停止后台监督器 / ctrl + c 用于前台监督器。
  • status : 显示后台监督器的状态。
  • startup : 生成 ecosystem.json 监督器启动配置,别忘了在每个项目中停止您的监督器进程,然后查看这里了解如何开始。

代码片段

/** Use asynchronous? */

__async__(function () {

    Model::truncate();
});
/** Use asynchronous await-like to get variable? */

[ $model, ] = __async__(fn () => Model::all());
/** Use setInterval? */

__setInterval__(function () {

    Model::truncate();

}, 2000);
/** Use setImmediate? */

__setImmediate__(function () {

    Model::truncate();

}, 2000);
/** Use exec as replace temporary process? */

$os = __exec__("uname -a");
/** Use spawn as one way communication child process? */

/** Stdin stream handler... */
$stdin = fopen("php://temporary", "w+");
fwrite($stdin, "Foo...");
fwrite($stdin, "Bar...");
fwrite($stdin, "Baz...");
fclose($stdin);

/** Stdout handler... */
$stdout = function ($isError, $data)
{
    if ($isError) {

        // $isError //
    }

    // $data //
};

__spawn__("python3 example.py", $environment = [], $stdout, $stdin);

作者