far*_*jam 0 laravel laravel-5.1
这可能是一个非常微不足道/新手的问题.我已经开始在我的一个控制器功能中使用Laravel Queue; 但是,当我发送作业时,我必须等待队列完成才能继续使用该功能.我认为队列背后的整个概念是它允许您在后台处理时间密集型任务,因此您可以继续使用其余功能.
这就是我的控制器的样子:
public function postCreate(Request $request)
{
// Validate Request
$this->validate($request, $this->rules());
// I have to wait for this to finish before it lets me continue
// I want this to be processed in the background instead
$this->dispatchFrom('App\Jobs\GenerateReport', $request);
return json_encode([
'html' => '<p>some html</p>'
]);
}
Run Code Online (Sandbox Code Playgroud)
如果脚本确实在线处理作业而不是离线,我最好的猜测是你正在为队列使用同步驱动程序,它会立即处理作业并阻塞.
检查config/queue.php文件,看看什么是"默认"的配置值设置为,应该是默认阅读:env('QUEUE_DRIVER', 'sync').如果是这种情况那么这是正确的,那么请查看您的.env文件并确保设置了环境变量QUEUE_DRIVER.
如果QUEUE_DRIVER您的.env文件中的变量设置为"sync" ,那么您正在使用同步驱动程序.如果它根本没有设置,那么queue.php文件中的那一行表示它将回退到同步驱动程序.
如果所有这些都成立,只需使用您要使用的驱动程序更新环境变量,并确保在config/queue.php文件中更新该驱动程序的配置选项.
希望有所帮助!
| 归档时间: |
|
| 查看次数: |
1031 次 |
| 最近记录: |