我听说过关于 php 的 Swoole 项目的好消息。但是,在他们的文档/示例中,我只看到了服务器处理的实现(即如何设置网络服务器、应答请求等)。但是,我找不到示例,如何简单地从 cli 触发异步函数(即 php myfile.php
)
其中 myfile.php
可能包含(在我的未命名中)这样的内容 Swoole\SomeAsyncFunion
(只是假名):
Swoole\SomeAsyncFunion( function(){ file_get_contents("http://site-1.com"); echo "hello"; } );
Swoole\SomeAsyncFunion( function(){ do_long_running_function(); echo "world"; } );
Swoole\SomeAsyncFunion( .... );
Swoole\SomeAsyncFunion( .... );
Swoole\SomeAsyncFunion( .... );
因此,只需从 php-cli 异步执行多个函数。怎么做?使用 parallel
扩展名,我与描述的完全相同( \parallel\run( function(){ ... } );
),但无法弄清楚如何处理 swoole。 (我不需要任何网络服务器,只需要 cli)。
答案 0 :(得分:1)
您可以使用 Co\run
和 go
use function Swoole\Coroutine\go;
use function Swoole\Coroutine\run;
run(function () {
go(function () {
file_get_contents("http://site-1.com"); echo "hello";
});
go(function () {
do_long_running_function(); echo "world";
});
});