【发布时间】:2018-06-30 01:54:29
【问题描述】:
我有大量数据想要快速处理并充分利用我的服务器。因此,我创建了一个父工匠命令和一个子工匠命令。
父工匠命令:从数据库中获取值,进行各种计算,将数据分成块并使用以下代码执行子工匠命令的多个实例.
foreach($arrayOfData as $chunk){ // $arrayOfData is an array of Chunks
$this->call('process:data',[
'data' => $chunk // Chunk is an array containing data
]);
$this->info('Chunk Processed');
}
但它会等待一个实例停止执行,这意味着它不会一次执行我想要的多个子工匠命令实例!我知道以这种方式调用它会等待子工匠命令的一个实例停止执行。有什么方法可以执行child artisan command 的多个实例而无需等待一个实例停止执行?
我已经搜索了不同的方法来执行此操作,我可以使用 exec() 和类似函数执行子工匠命令,但它也会返回一些我的代码将等待的退出代码。
通过一次只执行 2 个实例,我可以将处理数据所花费的时间除以 2。我想一次执行 3 个实例!有没有办法做到这一点?
更多信息
Child artisan command:获取数据数组并对其进行处理。基本上,它会针对给定数据更新数据库中的一些信息。
【问题讨论】:
标签: php laravel laravel-5 laravel-artisan