Laravel 如何在多租户应用程序中为每个租户管理不同的队列?

Laravel how can we manage different queue for each tenant in multi tenant application?

  1. 我有多租户应用程序。
  2. 每个租户都有多项操作(sync_customers、sync_metafileds、install_code、verify_code 等),我需要对其进行 API 调用.
  3. API 呼叫限制为每秒 2 次呼叫(一分钟内最多 41 次呼叫)。

案例 1。

我需要的是

  1. 不同租户的不同队列。
  2. 队列需要优先。
  3. 如果更高优先级的任务进入任何队列process.finish它首先并继续挂起任务。
  4. 如果没有其他待处理的任务,则只优化服务器资源并关闭该队列。

我正在使用 AWS 和 laravel v5.x php 版本 7.x

希望大家明白我的意思。

提前致谢。

我创建了一个自定义命令 queue:work_stores 参数为 {user_id}。

其中 运行 queue:work 带有参数 --once=true

$this->call('queue:work', [
  "--once" => true,
  "database"
]);

一个标记,用于跟踪当前 queue:work_stores 是否 运行ning。

查看完整代码https://gist.github.com/little-isaac/a6d70c82f372406f827fb3b399745c8e