我有一个laravel应用程序,其中运行我正在运行命令行任务。
该任务基本上从数据库中提取数据并将其写入磁盘。文件大小约为15-35kb。每个任务都有大约30到60个文件。目前我正在测试只运行一项任务。
public function run(){
// ...code....
$awaitables = [];
foreach ($sites as $site){
try {
$awaitables[] = $this->process($site);
} catch(\Exception $e){
\Log::exception($e);
}
}
$asyncCalls = \HH\Asio\v($awaitables);
echo "Im here". PHP_EOL;
$returns = \HH\Asio\join($asyncCalls);
var_dump($returns);
}
当我运行任务时
time hhvm -v Eval.Jit=0 artisan exportfiles
时间输出显示大约2分钟。但是,文件会在大约20秒左右的时间内快速创建。我想知道为什么在看到$ returns变量的转储后会挂起1分钟。
我认为HH\Asio\Join($awaitables);
总结了异步过程。
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