Commit 1a5a3629d73f4a3f84c55ee86387f6ab799bf4f6

Authored by Adhidarma Hadiwinoto
1 parent eb0629a0ec
Exists in master

Load history from redis on start

Showing 1 changed file with 9 additions and 1 deletions Inline Diff

1 'use strict'; 1 'use strict';
2 2
3 const redis = require('redis'); 3 const redis = require('redis');
4 const CircularBuffer = require("circular-buffer"); 4 const CircularBuffer = require("circular-buffer");
5 5
6 const config = require('komodo-sdk/config'); 6 const config = require('komodo-sdk/config');
7 const logger = require('komodo-sdk/logger');
8
7 const redisClient = redis.createClient(config.redis || { host: '127.0.0.1' }); 9 const redisClient = redis.createClient(config.redis || { host: '127.0.0.1' });
8 const history = new CircularBuffer(1000); 10 const history = new CircularBuffer(1000);
9 11
10 const REDIS_KEYWORD = `SHAKIR_SMS_HISTORY_${config.name||'SMS'}`; 12 const REDIS_KEYWORD = `SHAKIR_SMS_HISTORY_${config.name||'SMS'}`;
11 13
12 function fetchFromRedis() { 14 function fetchFromRedis() {
13 redisClient.LRANGE(REDIS_KEYWORD, 0, -1, (err, reply) => { 15 redisClient.LRANGE(REDIS_KEYWORD, 0, -1, (err, reply) => {
14 console.log(reply); 16 reply.forEach((el) => {
17 try {
18 history.push(JSON.parse(el));
19 } catch (e) {
20 logger.warn(`Error parsing JSON on redis history. ${e.toString()}`);
21 }
22 });
15 }) 23 })
16 } 24 }
17 fetchFromRedis(); 25 fetchFromRedis();
18 26
19 function push(item) { 27 function push(item) {
20 redisClient.LPUSH(REDIS_KEYWORD, JSON.stringify(item)); 28 redisClient.LPUSH(REDIS_KEYWORD, JSON.stringify(item));
21 history.push(item); 29 history.push(item);
22 } 30 }
23 31
24 function dump() { 32 function dump() {
25 const result = history.toarray(); 33 const result = history.toarray();
26 // console.log(JSON.stringify(result, null, 2)); 34 // console.log(JSON.stringify(result, null, 2));
27 return result; 35 return result;
28 } 36 }
29 37
30 exports.push = push; 38 exports.push = push;
31 exports.dump = dump; 39 exports.dump = dump;