2016-03-28 1 views
0

私はスレッドでioloopを実行し、メッセージをnsqdに書き込むだけです。試してみてください:キューからメッセージを取り出してプッシュできるnsqライターを実装する方法は?

#!/usr/bin/env python2 
# coding=utf-8 

import tornado 
import time 
from nsq.writer import Writer 

w = Writer(["bj1:4150", "bj2:4150"], reconnect_interval=15) 
w.connect() 


@tornado.gen.coroutine 
def future_pub(topic, msg): 
    result = w.pub(topic, msg) 
    print(result) 
    time.sleep(3) 
    raise tornado.gen.Return(result) 


@tornado.gen.coroutine 
def main(): 
    while True: 
     try: 
      future = future_pub("test", "message") 
      yield future 
     except Exception as e: 
      print(e.message) 


tornado.ioloop.IOLoop.instance().run_sync(main) 

しかし、それは動作しませんでした。私たちを手伝ってくれますか?ありがとうございました!

答えて

0

を実行したことがないので、接続は開かず、Writerはメッセージを公開できません。
PeriodicCallbackを使用して1秒に1回メッセージを送信するための例:https://pynsq.readthedocs.org/en/latest/writer.htmlを参照してください。

+0

私はすでにその文書を読んでいます。しかし、私の問題を解決することはできません。実際には私は一つのことを欲しがります。作者はキューからメッセージを取り出し、待ち行列にメッセージがなければ待つが、1秒はスリープしない。私たちを手伝ってくれますか? –

+0

書き込み側はキューからメッセージを取得せず、キューに書き出します。キューリーダーが各読み取りメッセージを別のトピックに公開するようにしますか?元の質問からは、達成しようとしていることは明らかではありません。 – Oliver

+0

はい、それは私が欲しいものです。デモの実装を手伝ってもらえますか?どうもありがとう! –

関連する問題