如何将数据从 laravel 发送到使用 Bull 队列实现的 redis 队列

How to send data from laravel to a redis queue implemented using Bull queue

我在 nestjs 项目中实现了 Bull 队列,但希望生产者成为一个 laravel 项目。 我使用以下命令生成

Redis::command('zadd', ['bull:test:delayed', 1, $data]);

和消费者使用

@Processor('test')
export class ConsumerProcessor {
  @Process({concurrency:13})
  handle(j: Job<unknown>) {
    this.logger.log(j.id);
  }
}

生产者添加的 $data 可通过 job.id 访问,我如何使用 job.data 访问它并拥有唯一 ID?生产方需要做哪些改变?

以下代码有效:

A="some unique identifier";
Redis::command("hmset",['bull:<queuename>:<A>', "data" , json_encode($data)]); 
Redis::command('zadd', ['bull:<queuename>:delayed', 1, A]);

我使用 https://github.com/HackThisSite/PHP-Bull-Scheduler 添加作业(仅适用于 Predis)


今天还尝试 https://github.com/ilzrv/php-bull-queue 获得 phpredis 支持(需要 php7.4+)