tripteki / laravelphp-supervisor
Tript Teknologi 的 Laravel.php 监督器
1.0.0
2024-05-21 16:15 UTC
Requires
- php: ^8.0.2
- ext-swoole: *
- beyondcode/laravel-websockets: ^2.0.0-beta.37
- guzzlehttp/guzzle: ^7.5.0
- laravel/octane: ^1.3.9
- pusher/pusher-php-server: 7.0.0
- tripteki/laravelphp-notification: ^1.0.0
README
此包提供类似于 supervisor-like、async-like、child-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);
作者
- Trip Teknologi (@tripteki)
- Hasby Maulana (@hsbmaulana)