【问题标题】:Laravel Homestead queue:listen and queue:work only process 1 job at a timeLaravel Homestead queue:listen and queue:work 一次只处理 1 个作业
【发布时间】:2019-05-12 14:57:16
【问题描述】:

您好,我在 laravel homestead 上的队列似乎有问题。 Work and Listen 一次处理 1 个队列有没有办法让它运行一次并处理作业表中的所有队列?

这是我的代码:

DB::beginTransaction();
    try {
        $model_data = $this->transformCsvDataToModelData($this->csv_data, $this->data['file_columns'], $this->data['table_columns'], $this->data);
        $dynamic_list_model = new DynamicDataList();
        $dynamic_list_model->setTable($this->list->table_name);
        $dynamic_list_model->insert($model_data);
        $this->notify($this->data['user']->id, [
            'title' => 'Data list upload successful',
            'message' => 'Batch ' . ($this->index + 1) . ' data list upload done.'
        ], 'success');
        DB::commit();
    } catch (Exception $exception) {
        DB::rollBack();
    }

【问题讨论】:

  • 为什么是--queue=data_list_upload?你的意思是,每次你运行php artisan queue:work 它处理 1 Queue 然后命令停止所以你必须再次运行它?那么为什么App\Events\DataListUploadJobApp\Events\Notify 都是进程呢?通常它应该坚持这个过程并等待新的队列到达来处理它们。也许您可以告诉我们更多关于您的工作流程、用户上传数据列表的时间和方式。
  • Notify 事件正在使用 ShouldBroadcastNow 因为我想在某个操作完成/完成后通知用户我尝试删除 ShouldBroadcastNow 但它仍然没有修复。即使在 queue:listen 中,它也只处理 1 个作业。基本上,工作流程是当用户上传数据时,它会按一定数量对其进行分块,然后按块创建一个队列以将其上传到数据库中,一旦该批次完成,它会通知用户第一批已完成上传。跨度>
  • 这是什么版本的 Laravel?
  • 我认为最新的5.7。
  • 您介意分享一下您是如何分配工作的吗?来自 App\Events\DataListUploadJob 和 App\Events\Notify 的完整代码也会派上用场。

标签: laravel queue jobs homestead


【解决方案1】:

如果你使用 supervisor 来管理 queue worker,

配置numprocs=8

在本例中,numprocs 指令将指示 Supervisor 运行 8 个 queue:work 进程并监控所有这些进程。

这里是关于它的更多信息,https://laravel.com/docs/5.7/queues#supervisor-configuration

【讨论】:

  • 我没有使用主管,只使用 php artisan queue:listen 和 php artisan queue:work 但没有一个会监视队列,它只逐个处理它 我必须手动运行命令命令来处理下一个队列。
【解决方案2】:

几天前我遇到了这个问题,问题是服务器错误,没有通知我问题出在哪里。您的队列工作正常,当您的代码中发生错误时它会失败。意味着您的第一个事件运行良好,但第二个事件失败。

尝试调试您的业务逻辑而不是您的队列,这也不是 Homestead 的问题。

让我们知道。

【讨论】:

  • 那就告诉我吧,我知道这很痛苦
猜你喜欢
  • 1970-01-01
  • 2017-06-18
  • 2014-11-20
  • 2019-02-28
  • 2015-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多