[英]Laravel artisan command doesn't finish properly
我有一个工匠命令来处理表中的作业。 reverseMatchSystemItem()方法依次处理特定供应商环境中的所有产品。 对于特定的供应商(需要最长时间),该命令尚未完成。 在为所有供应商完成所有操作之后(我也仅与一个供应商进行了尝试),并且删除了不活动的作业后,它继续运行(光标闪烁,错误日志为空!),有趣的是,CPU使用率不断提高。
public function handle()
{
$jobs = ReverseMatchProductJobs::all();
try {
foreach ($jobs as $job) {
if ($job->object_type == 'product') {
foreach (Supplier::all() as $supplier) {
$supplier->api()->reverseMatchSystemItem(Item::find($job->object_id));
}
} elseif ($job->object_type == 'size') {
foreach (Supplier::all() as $supplier) {
$supplier->api()->reverseMatchSystemItemOption(ItemOption::find($job->object_id));
}
}
$job->active = false;
$job->save();
}
DB::table('reverse_match_product_jobs')->where('active', false)->delete();
// die();
} catch (Exception $ex) {
var_dump($ex);
}
}
如果我在delete()操作之后取消对die()的注释,它会正确完成,但是我想知道它是否会杀死两者之间的进程。 如何更好地调试此功能以了解问题所在?
编辑:同一过程与Tinker完美配合。
如果不直接修改查询,这将是在Stackoverflow上很难回答的问题之一。 但是,您的问题是如何进行调试,因此我将重点介绍以下内容:
我将从以下内容开始:
action
并save
零件。 除此之外,没有更多信息就无法做很多事情
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.