Commit 1a5a3629d73f4a3f84c55ee86387f6ab799bf4f6
1 parent
eb0629a0ec
Exists in
master
Load history from redis on start
Showing 1 changed file with 9 additions and 1 deletions Inline Diff
lib/history.js
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; |