【发布时间】:2018-09-19 21:16:22
【问题描述】:
在共享软管上运行 cron 作业时,任何人都可以为 gateway timeout 504 错误提出任何解决方案。我已经尝试过 sleep 功能,但它不起作用,我有以下用于 cron 作业的功能 -
public function checkOrderStatus(){
$orders = Order::select('id')
->whereNotIn('status', ['COMPLETED', 'CANCELLED', 'PARTIAL', 'REFUNDED'])
->where('api_order_id', '!=', null)
->orderBy('id', 'desc')
->pluck('id')
->toArray();
$collection = collect($orders);
$chunks = $collection->chunk(20);
$request = new \Illuminate\Http\Request();
foreach($chunks as $ids){
foreach($ids as $id){
$request->replace(['id' => $id]);
$rep = $this->getOrderStatusFromAPI($request);
}
sleep(10);
}
}
getOrderStatusFromAPI() 函数调用 3rd 方 API 来获取一些记录。 checkOrderStatus() 函数当前在每个 cron 调用中获取大约 300 条记录。请提出服务器升级以外的任何解决方案。非常感谢!!
【问题讨论】: