var dbIndex = 10, interval = 20000, key = 'stack', count = 100; var express = require('express'); var app = express(); var redis = require("redis"); app.get('/', function(req, res){ var client = redis.createClient(); client.select(dbIndex, function() { client.on("error", function (err) { console.log("Error " + err); }); client.lpush(key, req.query.key, function() { console.log('Got key: ' + req.query.key); client.quit(); }); }); res.send('Got key: ' + req.query.key + '. Thanks.'); }); app.listen(3000); console.log('Listening on port 3000...'); (function schedule() { setTimeout(function() { var client = redis.createClient(); client.select(dbIndex, function() { client.on("error", function (err) { console.log("Error " + err); }); client.llen(key, function(err, llen) { if (err) { console.log('Error ' + err); } else { if (llen != 0) { client.lrange(key, 0, count, function(err, reply) { if (err) { console.log('Error ' + err); } else { console.log(reply); process.nextTick(function() { for (var i=0; i<reply.length; i++) { console.log('Key ' + reply[i] + ' is processed'); client.lrem(key, 1, reply[i], redis.print); } client.quit(); }); } }); } else { console.log('Stack is empty'); client.quit(); } } }); }); schedule(); }, interval); }());
Открываем блокнот, создаем файл app.js, копируем в него код, сохраняем.
Не забываем установить Express и node_redis:
- npm install express
- npm install redis
Запускаем redis-server, выполняем app.js.
Через 20 секунд получаем подобную картину:
Отправляем серверу несколько ключей:
После очередного цикла обработки данных наблюдаем следующее:
Данные обработаны, стек снова пуст.
Комментариев нет:
Отправить комментарий
Комментарий будет опубликован после модерации