gpt4 book ai didi

php - Laravel,dispatchAfterResponse 不释放前端请求

转载 作者:行者123 更新时间:2023-12-05 03:35:14 27 4
gpt4 key购买 nike

我正在尝试在 Laravel 中实现异步作业,因此我可以发送电子邮件(使用第 3 方 API),但让用户进入前端,这样请求就不会等待电子邮件发送。我正在使用 Laravel 6.18。

所以我用 php artisan make:job EmailJob 创建了通用作业

我设置了 60 秒的休眠时间作为发送长邮件的测试。

然后在我的 Controller 中

   EmailJob::dispatchAfterResponse();
return response()->json($obj,200);

在 chrome console 中,我可以看到有 200 个响应,但是请求仍然没有解决,也没有返回数据,所以我的 ajax/axios 请求仍在等待完全响应,最终超时(60 秒太长),并在前端产生错误。

那么问题来了,发送完整响应后如何执行作业?

最佳答案

您必须更改队列驱动程序并运行 queue:worker

以下 2 个资源将帮助您

  1. https://laravel-news.com/laravel-jobs-and-queues-101
  2. https://laravel.com/docs/6.x/queues#connections-vs-queues

关于php - Laravel,dispatchAfterResponse 不释放前端请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69920072/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com