使用Redis控制代码运行开关(使用redis代码开关)
许多业务都需要灵活控制代码的运行,比如把一段比较费时的代码只在上班的时间里运行,或者限制一段推荐类的算法只当日运行一次等,为了避免手动控制复杂度增高,可以采用Redis来自动控制代码的运行开关。
1. 配置Redis.
首先要创建一个Redis服务器,可以使用Redislab或者Amazon ElastiCache等,其次要创建一个KEY来表示代码的运行状态,我们这里使用一个String类型的KEY,值可以是1表示开启代码运行,值为0表示关闭代码运行。
2. 使用Node.js实现控制逻辑.
使用Node.js来连接Redis服务器,并在定时器里面查询redis对应的KEY,判断代码是否可以正确运行,如果可以运行则执行相应的代码。
以下是一段使用Node.js监测redis中运行开关KEY的示例代码:
const redis = require('redis');
const client = redis.createClient(, );
client.get('flag_key', function(err, result) { if (result === '1') {
// run the code console.log('run code!');
} else if (result === '0') { // do nothing
}});
3. 使用Flagka来管理控制台
Flagka是一个用来管理Redis’s key-value对的工具,可以提供一个可视化的界面来管理KEY的value,方便更改运行开关状态,而不需要使用Redis客户端进行更改。
总结:
通过利用Redis来保存一个可控制的KEY-VALUE,使用Node.js在固定的定时器里面查询运行开关的KEY,我们可以在不复杂的情况下实现对于每个逻辑需要控制的运行开关。在此基础上利用Flagka可视化管理Redis的KEY-VALUE对,可以更方便的更改控制台的运行状态,从而实现灵活控制代码的运行开关。