コンテンツにスキップ

スクリプト開発 / コネクターオブジェクト DFF.CONN / NSQ

NSQ コネクター操作オブジェクトは、主に NSQ を操作するメソッドを提供します。

本コネクターは HTTP プロトコルで NSQ Lookupd にアクセスし、HTTP プロトコルでメッセージをパブリッシュします

DFF.CONN(...) のパラメータは次のとおりです:

パラメータ 必須 / デフォルト値 説明
connector_id str 必須 コネクター ID
timeout int/float 10 現在の操作オブジェクトのデフォルト HTTP リクエストタイムアウト時間 (秒)

.query(...)

NSQ Lookupd に HTTP リクエストを送信します。パラメータは次のとおりです:

パラメータ 必須 / デフォルト値 説明
method str 必須 リクエストメソッド。例: GETPOST"GET /nodes" とも記述できます
path str None / で始まる Lookupd リクエストパス。省略時は method から分割されます
query dict None URL クエリパラメータ
body str/bytes/dict None リクエストボディ
timeout int/float None このリクエストのタイムアウト時間。省略時は操作オブジェクトのデフォルト値を使用します
1
result = nsq.query('GET', '/nodes')

応答が JSON または XML の場合は解析後のオブジェクトを返し、それ以外の場合は生のバイト列を返します。HTTP ステータスコードが 400 以上の場合は例外をスローします。

.publish(...)

メッセージをパブリッシュします。パラメータは次のとおりです:

パラメータ 必須 / デフォルト値 説明
topic str 必須 トピック
message str/bytes/dict/list/tuple 必須 メッセージ内容。コンテナ型は先に JSON にシリアライズされます
timeout int/float None このリクエストのタイムアウト時間。省略時は操作オブジェクトのデフォルト値を使用します
1
result = nsq.publish(topic='events', message={'status': 'ok'})

コネクターは Lookupd が返したプロデューサーノードからランダムに 1 つのノードを選択してメッセージをパブリッシュし、解析後の HTTP レスポンスを返します。