外部 Artisan::call 异步的问题

事情是酱紫的,我有一个任务,我想通过 ajax 发送一个请求,然后执行 Artisan::call 然后不等待,直接返回一个状态码;

比如我在 A 页面通过 ajax 发起一个请求给 B
B 收到请求,执行 Artisan::call () 返回一个状态码, 这个时候我发现 ajax 一直在等待,状态码一直没返回;
那么问题来了,是不是 Artisan::call 堵塞了?

B 页面代码:

 public function initStorage() {
        $params = Request()->all();
        Artisan::call('command:MovieInit', [
            'method'=>'init', 'disk_id'=>$params['disk_id'], 'recursive'=>$params['recursive'], 'path'=>$params['path']
        ]);
        return response()->json(['code' => 0, 'msg' => '完成!']);
    }

我就是想执行 Artisan::call () 然后不等待,直接执行 return response ()->json (['code' => 0, 'msg' => ' 完成!']);

可是现在一直在等待。这咋办?就不能丢去后台么?

我木有用别的东西,就只有 mysql,各位不要说用队列解决。
我只是想搞明白。这个位置是不是堵塞了?

如果是堵塞了,请问有啥办法曲线救国?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

response()->json()->send() 放前面,不要写 return

在后面执行 artisan 命令再 return

ref: http://www.laruence.com/2011/04/13/1991.ht...

5年前 评论
luci 4年前
hldh214 (作者) 4年前
luci 4年前
讨论数量: 7

response()->json()->send() 放前面,不要写 return

在后面执行 artisan 命令再 return

ref: http://www.laruence.com/2011/04/13/1991.ht...

5年前 评论
luci 4年前
hldh214 (作者) 4年前
luci 4年前

finallly 了解一下

5年前 评论
giao哥 5年前
giao哥

可以使用异步 比如 swoole,你可以去 github 搜索 laravels

5年前 评论
hackxiaoya (楼主) 5年前

可以使用 队列

5年前 评论
hackxiaoya (楼主) 5年前

response()->json()->send() 放前面,不要写 return

在后面执行 artisan 命令再 return

ref: http://www.laruence.com/2011/04/13/1991.ht...

5年前 评论
luci 4年前
hldh214 (作者) 4年前
luci 4年前

推送到队列 Artisan::queue ();

5年前 评论

事件 + 队列了解一下

5年前 评论

兄弟,有解决方案吗?我也是想 Artisan:call,不想跑队列,但也不想等待

4年前 评论
hackxiaoya (楼主) 4年前
Arsenal_jie (作者) 4年前