如何将数据从 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+)
我在 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+)