我有什么:
一旦仅使用JS和Ajax,它就可以正常工作-我唯一要实现的就是CORS中间件。但是,当我将逻辑移到JWT(使用jwt-auth
包)和GuzzleHttp(我正在使用它向服务API发送请求)之后,作业停止处理整个数据库队列,而是像将队列驱动程序设置为{{1 }}。
以下是我在API调用期间正在调用的控制器:
sync
其中public function processPackageById(Request $request) {
$id = $request->package_id;
$package = FilePackage::where('id', '=', $id)->where('package_status_id', '=', 1)->first();
if($package) {
Queue::push(new PackageProcessingJob(
$this->firm,
$this->accounts,
$package
));
return 'dispatching done for ' . $id;
}
return 'dispatching not done for ' . $id;
}
和$this->firm
被注入用于特定模型的存储库。 $this->accounts
对象在Laravel网站上创建,并且共享同一个数据库。
因此,没有任何作业可以证明到FilePackage
表中。当我使用邮递员时,一切都很好。但是,当我尝试从Laravel后端发送请求时:
jobs
任何人都可以告诉我这里出了什么问题以及什么原因引起的吗? 谢谢!
答案 0 :(得分:0)
好的,这真的很有趣。在我的控制器中回显config('queue.default')
之后,看来sync
确实很有价值,尽管我正确设置了所有内容。
然后我假设也许是Laravel本身及其变量的原因。实际上,在Laravel侧.env
的{{1}}文件中,其设置为QUEUE_DRIVER
。将其更改为sync
后,一切都按预期开始工作。
希望将来能对某人有所帮助。