envoylope / pcntl
v0.1.0
2024-05-03 17:24 UTC
Requires
- php: >=8.1
- ext-pcntl: *
- asmblah/php-amqp-compat: ^0.4
Requires (Dev)
- hollodotme/fast-cgi-client: ^3.1
- mockery/mockery: ^1.6
- phpstan/phpstan: ^1.10
- phpstan/phpstan-mockery: ^1.1
- phpunit/phpunit: ^10.2
- tasque/event-loop: ^0.1
- tasque/tasque: ^0.1
README
使用SIGALRM UNIX System V信号通过ext-pcntl将AMQP心跳传输给Envoylope。
为什么?
php-amqp
/librabbitmq
不支持AMQP心跳,它们只在扩展中的阻塞调用期间支持。使用php-amqplib
,我们可以更规律地发送心跳,使用UNIX System V信号。这个库提供了自己的基于信号的发送器,使用pcntl_async_signals(...)
允许更频繁的心跳处理,基于php-amqplib的发送器实现中的逻辑。
请注意,此调度器不支持php-fpm
SAPI,因为它不支持ext-pcntl
PHP扩展。如果您使用的是php-fpm
,请参阅Envoylope EventLoop。
用法
使用Composer与php-amqp-compat一起安装
$ composer require asmblah/php-amqp-compat $ composer require envoylope/pcntl
配置包
(待办事项)