Command line hhvm异步cli挂起

Command line hhvm异步cli挂起,command-line,async-await,hhvm,hacklang,Command Line,Async Await,Hhvm,Hacklang,我有一个laravel应用程序,我在其中运行命令行任务 该任务基本上从数据库获取数据并将其写入磁盘。文件大小约为15-35kb。每个任务大约要编写30到60个文件。目前我只测试运行一个任务 公共函数运行(){ //……代码。。。。 $waitiables=[]; foreach($sites作为$site){ 试一试{ $waitiables[]=$this->process($site); }捕获(\异常$e){ \日志::异常($e); } } $asyncCalls=\HH\Asio\v(

我有一个laravel应用程序,我在其中运行命令行任务

该任务基本上从数据库获取数据并将其写入磁盘。文件大小约为15-35kb。每个任务大约要编写30到60个文件。目前我只测试运行一个任务

公共函数运行(){
//……代码。。。。
$waitiables=[];
foreach($sites作为$site){
试一试{
$waitiables[]=$this->process($site);
}捕获(\异常$e){
\日志::异常($e);
}
}
$asyncCalls=\HH\Asio\v($waitiables);
回显“我在这里”;
$returns=\HH\Asio\join($asyncCalls);
var_dump(收益);
}
当我运行任务时
time hhvm-v Eval.Jit=0 artisan导出文件
时间输出显示大约2分钟。然而,这些文件在大约20秒内创建得相当快。我想知道为什么在看到$returns变量转储后会出现1分钟的挂起

我想
HH\Asio\Join($waitiables)结束异步进程

HipHop VM 3.18.0-dev (rel)
Compiler: heads/master-0-g0f6803df27b27f929f5edc175e11d302643f3a2c
Repo schema: 1733dfccb8791a77b6ce7b894ddd66e3238c2106
set_mempolicy: Operation not permitted
运行MacBook Pro 16gb Sierra
使用Docker For Mac

如果创建了文件并完成了方法,对我来说这听起来不像是异步问题。你能分享
过程
方法代码吗?我不相信它与异步代码有任何关系。您会说:
1分钟后,我看到$returns变量转储后挂起
,因为
var\u dump($returns)
完全是在任何异步相关的事件之后发生的,您知道异步代码已经完成,而这不是花费时间的地方。可能是在这个方法完成后运行的代码。在这个run方法之后没有任何东西运行。除非另有规定,否则Laravel任务将仅执行run方法。一旦所有的
可等待
s被
连接
ed,调用将像任何其他非异步函数一样被阻止。如果您想知道,当脚本结束时,未完成的
等待
未加入
ed的s将被简单地抛出;他们不会阻止脚本完成。检查脚本是否在挂起之前到达末尾。