Commit cb55eb268e00465115d69aaff61ce97b2cdb6fab
1 parent
0ae77a92f0
Exists in
master
lru-cache untuk reverseUrlCache
Showing 2 changed files with 19 additions and 1 deletions Side-by-side Diff
neoxmlinutil.js
1 | 1 | var oracledb = require('oracledb'); |
2 | +var LRU = require('lru-cache'); | |
2 | 3 | |
3 | 4 | var config = require("./config.json"); |
4 | 5 | var logger = console; |
5 | 6 | |
6 | 7 | var oraCon; |
7 | 8 | |
9 | +var reverseUrlCache = LRU({max: 30, maxAge: 60 * 1000}); | |
10 | + | |
8 | 11 | function init(options) { |
9 | 12 | if (options && options.logger) { |
10 | 13 | logger = options.logger; |
... | ... | @@ -37,7 +40,7 @@ function getTransactionIdFromMessage(message) { |
37 | 40 | } |
38 | 41 | } |
39 | 42 | |
40 | -function getReverseUrl(msisdn, callback) { | |
43 | +function getReverseUrlFromDb(msisdn, callback) { | |
41 | 44 | oraCon.execute( |
42 | 45 | "SELECT trim(A.MSISDN) MSISDN, trim(B.REVERSE_URL) REVERSE_URL FROM T_STORE_USER_MSISDN A, T_STORE_USER B WHERE A.STORE_ID = B.STORE_ID AND A.USER_NAME = B.USER_NAME AND B.REVERSE_URL IS NOT NULL AND A.MSISDN = :msisdn", |
43 | 46 | [msisdn], |
... | ... | @@ -55,11 +58,25 @@ function getReverseUrl(msisdn, callback) { |
55 | 58 | retval.push(result.rows[i][1]); |
56 | 59 | } |
57 | 60 | |
61 | + if (retval.length) { | |
62 | + reverseUrlCache.set(msisdn, retval); | |
63 | + } | |
64 | + | |
58 | 65 | callback(null, retval); |
59 | 66 | } |
60 | 67 | ); |
61 | 68 | } |
62 | 69 | |
70 | +function getReverseUrl(msisdn, callback) { | |
71 | + var urls = reverseUrlCache.get(msisdn); | |
72 | + | |
73 | + if (!urls) { | |
74 | + getReverseUrlFromDb(msisdn, callback); | |
75 | + } else { | |
76 | + callback(null, retval); | |
77 | + } | |
78 | +} | |
79 | + | |
63 | 80 | function getRequestIdFromResponseMessage(message) { |
64 | 81 | try { |
65 | 82 | var tokens = message.split('.'); |