‘use strict‘;function InitRedisStrategy(agent, name, channel) { ?class RedisStrategy extends agent.ScheduleStrategy { ???start() { ?????// 订阅其他的分布式调度服务发送的消息,收到消息后让一个进程执行定时任务 ?????agent.redis.on(‘message‘, (c, message) => { ???????if (c === channel) { ?????????this.sendOne(message) ???????} ?????}) ???} ?} ?agent.schedule.use(name, RedisStrategy)}// {app_root}/agent.jsmodule.exports = agent => { ?// class ClusterStrategy extends agent.ScheduleStrategy { ?// ??start() { ?// ????// 订阅其他的分布式调度服务发送的消息,收到消息后让一个进程执行定时任务 ?// ????// 用户在定时任务的 schedule 配置中来配置分布式调度的场景(scene) ?// ????// such as mq / redis subscribe ?// ????// agent.mq.subscribe(schedule.scene, () => this.sendOne()); ?// ??} ?// } ?// agent.schedule.use(‘cluster‘, ClusterStrategy); ?agent.messenger.on(‘egg-ready‘, () => { ???agent.redis.subscribe(‘task1‘); ???agent.redis.subscribe(‘task2‘); ???agent.redis.subscribe(‘task3‘); ?}); ?InitRedisStrategy(agent, ‘redis1‘, ‘task1‘); ?InitRedisStrategy(agent, ‘redis2‘, ‘task2‘); ?InitRedisStrategy(agent, ‘redis3‘, ‘task3‘);};
egg.js redis subscribe multiple channel
原文地址:https://www.cnblogs.com/ChobitsSP/p/8759230.html