2016-09-07 10 views
0

私はjavascriptのNsqjsはPynsqに比べて本当に遅いですか?

var nsq = require('nsqjs'); 

var reader = new nsq.Reader('output', 'out', { 
    lookupdHTTPAddresses: '172.32.10.224:4161' 
}); 

reader.connect(); 


reader.on('message', function (msg) { 
    console.log('Received message [%s]: %s', msg.id, msg.body.toString()); 
}); 

に次のコードを持っており、ここでのpythonで同等のバージョンです。

import nsq 

def handler(message): 
    print str(message.body) 
    return True 

r = nsq.Reader(message_handler=handler, 
     lookupd_http_addresses=['http://172.32.10.224:4161'], 
     topic='output', channel='out') 
nsq.run() 

Pythonのバージョンは、javascriptに比べて非常に高速です。 javascriptのバージョンは、2分ごとに1つのメッセージを処理するようです。そして、Pythonはミリ秒で処理されるようです。私はここで何が起こっているのか本当に驚いていますか?これは私が走った正確なコードであり、私のキューには私が確認したたくさんのメッセージがあります。なぜjavascriptのバージョンは本当に遅いですか?

答えて

1

あなたがメッセージを処理しているNSQを言っていない:

reader.on('message', function (msg) { 
    console.log('Received message [%s]: %s', msg.id, msg.body.toString()); 
    msg.finish(); // <--- 
}); 

hereを参照してください。

私は、この暗黙のハンドラ(True仕上げは、Falseがrequeueです)に基づいてこれを行うと思います。

関連する問題