如何使用 SWOOLE 异步执行函数?

时间:2021-04-15 20:14:05

标签: swoole

我听说过关于 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)。

1 个答案:

答案 0 :(得分:1)

您可以使用 Co\rungo

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";
    });
});