0

我听说过关于 php 的Swoole项目的有希望的话。但是,在他们的文档/示例中,我只看到了服务器处理的实现(即如何设置网络服务器、回答请求等)。但是,我无法找到示例,如何简单地从 cli (即php myfile.php)触发异步函数,其中myfile.php可能包含(我的 undestranding)类似这样的Swoole\SomeAsyncFunion内容(只是 phseudo 名称):

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)。

4

1 回答 1

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";
    });
});
于 2021-06-04T10:35:24.037 回答