Blame view

utils/getTDK.js 807 Bytes
shijian authored
1 2
const md5 = require('md5');
const redis = global.yoho.redis;
shijian authored
3
const _ = require('lodash');
shijian authored
4
shijian authored
5
module.exports = (type, query, req) => {
shijian authored
6 7
    query = type === 'url' ? md5(query) : query;
shijian authored
8
    if (redis && _.get(req.app.locals.pc, 'ci.tdk', false)) {
shijian authored
9 10 11
        let arr = [];

        arr.push(redis.multi([
shijian authored
12 13
            ['exists', `tdk:${type}:${query}`],
            ['hmget', `tdk:${type}:${query}`, 'key', 'title', 'keywords', 'description']
shijian authored
14 15 16 17 18 19 20 21 22 23 24 25
        ]).execAsync());

        arr.push(new Promise((resolve)=>{
            setTimeout(resolve, 500, []);
        }));

        return Promise.race(arr).then(function(res) {
            if (res.length) {
                return res[1];
            } else {
                return [];
            }
shijian authored
26 27 28 29 30
        });
    } else {
        return Promise.resolve([]);
    }
shijian authored
31
};