2015-05-21 1 views
2

В настоящее время мы реструктурируем один из наших крупнейших проектов. Весь проект создан в смешанной среде Node.js/PHP и довольно распространен. Вот почему мы планируем использовать очередность для различных сервисов. Мы широко используем Redis в этой системе, поэтому я столкнулся с RSMQ (http://smrchy.github.io/rsmq/), который я пытаюсь реализовать. Мой вопрос: как я на самом деле реализую рабочую задачу или подобное с помощью этой очереди? Насколько я понимаю, он очень похож на SQS без каких-либо накладных расходов - что мне нравится, но я не совсем уверен, как действительно получить работу с ним.RSQM - опрос вручную?

До сих пор мой подход (упрощенно) выглядит следующим образом:

RQ = require("rsmq"); 
queue = new RQ({host: "127.0.0.1", port: 6379, ns: "nDispatch"}); 

queue.receiveMessage({qname:"mq"}, function() { 
    // code here 
}); 

Но вопрос - я должен опрашивать очередь вручную? Нет ли сообщений или подобных сообщений?

ответ

2

RSMQ сам по себе не реализует какого-либо рабочего, и он разделен на основные функциональные возможности очереди (что, на мой взгляд, является правильным подходом). Хотя вы могли бы все реализовать самостоятельно, я бы рекомендовал использовать дополнительный модуль rsmq-worker (http://smrchy.github.io/rsmq/rsmq-worker/), который предоставляет базовый скелет рабочего для вашего приложения.

Они обеспечивают простой, но полезный пример на их сайте:

var RSMQWorker = require("rsmq-worker"); 
    var worker = new RSMQWorker("myqueue"); 

    worker.on("message", function(msg, next){ 
     // process your message 
     next() 
    }); 

    // optional error listeners 
    worker.on('error', function(err, msg){ 
     console.log("ERROR", err, msg.id); 
    }); 
    worker.on('exceeded', function(msg){ 
     console.log("EXCEEDED", msg.id); 
    }); 
    worker.on('timeout', function(msg){ 
     console.log("TIMEOUT", msg.id, msg.rc); 
    }); 

    worker.start(); 

Я использовал и реализовать его таким образом, и она работает очень хорошо. Работник делает опрос для вас и предлагает события с ошибками, которых должно быть достаточно, чтобы вы могли идти.

+0

Спасибо exinferis! Это то, что я ищу. Прекрасно работает! – Christopher

Смежные вопросы