【问题标题】:How to execute functions asynchronously with SWOOLE?如何使用 SWOOLE 异步执行函数?
【发布时间】:2021-04-15 20:14:05
【问题描述】:

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

【问题讨论】:

标签: swoole


【解决方案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";
    });
});

【讨论】:

    猜你喜欢
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    • 2013-10-17
    相关资源
    最近更新 更多