ikarus / sps-multi-processing
v0.8.2
2021-03-18 16:32 UTC
Requires
- php: ^7.2
- ext-pcntl: *
- ext-posix: *
- ikarus/sps: ^0.8
README
多进程包附带示例插件,以实现由单个主sps引擎控制的异步sps操作。
安装
$ composer require ikarus/sps-multi-processing
用法
<?php use Ikarus\SPS\CyclicEngine; use Ikarus\SPS\SpawnedFileSPSPlugin; use Ikarus\SPS\SpawnedCallbackSPSPlugin; use Ikarus\SPS\SpawnedPluginAdapterPlugin; $sps = new CyclicEngine(2); $sps->addPlugin( new SpawnedFileSPSPlugin('my-sub-sps.php', 'my-id') ); $sps->addPlugin( new SpawnedCallbackSPSPlugin(function() { // Do stuff but remember that this callback is executed in a separated process! // To get a plugin management you need to setup it in main SPS and include it into the callback. }) ); $myPlugin = new ACustomDesignedPlugin(); $sps->addPlugin( new SpawnedPluginAdapterPlugin( // This will invoke the plugin's update method in a separate process. $myPlugin ) );
在文件 my-sub-sps.php 中,您可以定义一个具有不同属性的全新sps实例。
它将单独调用。
注意事项
请记住,更新方法或更新回调是在主进程的副本中执行的。
选项
您可以使用包 ikarus/sps-common-management 通过通用管理解决不同sps进程的问题。