368120
我的业务场景和官方《多进程模型和进程间通讯》描述的场景是一致的。 目前 redis 的订阅事件是在app.js 中写的,如下:
//app.js
async didReady() {
// 应用已经启动完毕
// 获取ctx
const ctx = await this.app.createAnonymousContext();
// 订阅redis 事件
this.app.redis.clients.get('client').subscribe('forbidden_ip', (err, result) => {
if (err) {
throw err;
}
console.log(result, 'psubscribe');
});
// 处理订阅到的消息
this.app.redis.clients.get('client').on('message', (channel, message) => {
switch (channel) {
case 'forbidden_ip':
// 更新ip名单
ctx.service.catchService.update();
break;
default:
ctx.logger.info('未处理的订阅事件:channel-【' + channel + '】,message-【' + message + '】');
}
console.log(message, channel);
// console.log(message, 'music');
});
}
问题: ```js //agent.js this.app.redis.clients.get('client').subscribe();
在 agent.js 中 无法获取 redis,只能获取agent。
请问大家有什么好想法吗。
ps:新手一枚,之前用的express ,最近在学习eggjs。