katsana / minions-server
使用ReactPHP的Minions组件服务器
Requires
- illuminate/console: ^6.0 || ^7.0 || ^8.0
- katsana/minions: ^1.6 || ^2.1
- laravie/stream: ^1.3
- league/climate: ^3.5
- react/event-loop: ^1.1
- react/http: ^0.8.4
- react/promise: ^2.5
Requires (Dev)
- mockery/mockery: ^1.3.1
- orchestra/testbench: ^4.5 || ^5.0 || ^6.0
- phpunit/phpunit: ^8.4 || ^9.0
README
安装
可以通过composer安装Minions
composer require "katsana/minions-server=^1.0"
请确保您已安装Minions并查看安装和设置文档。
用法
Minion服务器将通过Artisan命令运行ReactPHP RPC服务器。
您可以通过发出Artisan命令来启动RPC服务器
php artisan minions:serve
配置
您可以通过以下命令将默认的minions-server.php
导出到您的项目目录
php artisan vendor:publish --provider="Minions\Server\MinionsServiceProvider" --tag="config"
使用不同的端口
RPC服务器的默认端口为8085
。您可以通过更新环境文件(或config/minions.php
)来设置不同的端口。
MINION_SERVER_PORT=8081
限制监听主机
默认情况下,RPC服务器将在127.0.0.1
上监听,并且仅允许来自本地网络的入站连接。如果您想公开它,请更新环境文件(或config/minions.php
)来设置不同的主机。
MINION_SERVER_HOST='0.0.0.0'
使用supervisord保持套接字服务器运行
由于minions:serve
守护进程需要始终运行以接受连接,因此这是Linux上的任务运行程序supervisor
的理想用例。
首先,确保已安装supervisor
。
# On Debian / Ubuntu
apt install supervisor
# On Red Hat / CentOS
yum install supervisor
systemctl enable supervisor
一旦安装,添加一个supervisor需要持续运行的新进程。您将配置放在/etc/supervisor/conf.d
(Debian/Ubuntu)或/etc/supervisord.d
(Red Hat/CentOS)目录中。
在该目录中,创建一个名为minions.conf
的新文件。
[program:minion]
command=/usr/bin/php /home/project/artisan minions:serve
numprocs=1
autostart=true
autorestart=true
创建后,指示supervisor
重新加载其配置文件(而不影响已运行的supervisor
作业)。
supervisorctl update
supervisorctl start minion
您的RPC服务器现在应该正在运行(您可以使用supervisorctl status
来验证)。如果它崩溃,supervisor
将自动重启它。
请注意,默认情况下,supervisor
将强制对所有它管理的进程施加最大打开文件数。这是通过supervisord.conf
中的minfds
参数配置的。
如果您想增加最大打开文件数,您可以在/etc/supervisor/supervisord.conf
(Debian/Ubuntu)或/etc/supervisord.conf
(Red Hat/CentOS)中进行此操作
[supervisord]
minfds=10240; (min. avail startup file descriptors;default 1024)
更改此设置后,您需要重新启动supervisor
进程(这将导致它管理的所有进程重新启动)。