【问题标题】:Laravel Update Database not working in job queue but works in syncLaravel 更新数据库不在作业队列中工作但同步工作
【发布时间】:2019-12-29 17:27:44
【问题描述】:

我正在尝试在队列连接设置为sync 但现在设置为database 时更新队列作业中的数据库行。

编辑:修复序列化问题,更新队列中的数据库问题仍然存在。

public function handle()
    {

      $id = $this->settings->id;
      $server = $this->settings->server;
      $number = $this->settings->number;
      $api_script = storage_path('script.py');
      $delay = 5;

      //Determine Delay

      //Process Script Here

      //Check If Script Successful

      DB::table('orders')->where('order_id', $this->settings->order_id)->update(['status' => "Finalising..."]);

      ProcessEmails::dispatch($this->settings)->delay(now()->addMinutes($delay));
      // echo $process->getOutput();
    }

以上是我要执行的作业,更新数据库命令同步工作,但在连接设置为数据库时不工作。

感谢您的帮助!

【问题讨论】:

  • 此问题仅通过更改队列驱动程序出现在同一环境中,还是同一应用程序一个本地和一个生产?
  • @dparoli 相同的环境,仅更改 .env 变量。
  • 看看这里,即使没有链接到队列,你的问题似乎也一样:stackoverflow.com/questions/45266254/… 和这里:laravel.com/docs/5.8/deployment#optimizing-route-loading 它写了关于序列化的地方。
  • @dparoli 谢谢你,我实际上已经通过将返回视图移动到控制器来对路由问题进行排序。队列/数据库更新问题仍然存在。
  • 很高兴能提供帮助。请尝试使用\DB::table('orders')...

标签: laravel


【解决方案1】:

加班时你会遇到一些非常非常愚蠢的错误。只需重新启动 queue:work 命令即可解决我的问题。我有队列:工作在我的所有编辑过程中运行,并通过结束它并重新启动它。繁荣,神奇地我的数据库插入工作。

【讨论】:

    猜你喜欢
    • 2016-01-24
    • 2018-07-15
    • 2018-06-20
    • 2019-11-28
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多