在没有数据库队列驱动程序的情况下完成流明作业分配

时间:2018-07-04 12:49:47

标签: laravel jwt lumen guzzle jwt-auth

我有什么:

  • 处理特定任务的流明服务
  • Laravel门户网站,它将文件发送到该服务以进行处理

一旦仅使用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

任何人都可以告诉我这里出了什么问题以及什么原因引起的吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

好的,这真的很有趣。在我的控制器中回显config('queue.default')之后,看来sync确实很有价值,尽管我正确设置了所有内容。

然后我假设也许是Laravel本身及其变量的原因。实际上,在Laravel侧.env的{​​{1}}文件中,其设置为QUEUE_DRIVER。将其更改为sync后,一切都按预期开始工作。

希望将来能对某人有所帮助。