今さらPython3 (75) - パブサブ
この本の12章のネットワークのところを読み進めてます。入門書で分散コンピューティングとかいう単語が聞こえてくるのはいいね。
- 作者: Bill Lubanovic,斎藤康毅,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/12/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
パブリッシュ/サブスクライブモデル
前の記事を書き終わって、Redisを落としたらもうRedisの出番が来たじゃないですか。Redisでの簡単な例からスタートするみたい。
まずは、subを起動。
$ python3 redis_sub.py
ただし、このままでは何も起こらないので、pubを別のシェルウィンドウで起動。
$ python3 redis_pub.py Publish: maine coon wears a stovepipe Publish: persian wears a fedora Publish: persian wears a tam-o-shanter Publish: persian wears a fedora Publish: siamese wears a bowler Publish: siamese wears a tam-o-shanter Publish: siamese wears a fedora Publish: siamese wears a tam-o-shanter Publish: siamese wears a tam-o-shanter Publish: maine coon wears a stovepipe
ほぼ同時に、subを起動した側のウィンドウにも結果が出るはずだ。
$ python3 redis_sub.py Subscribe: b'maine coon' wears a b'stovepipe' Subscribe: b'persian' wears a b'fedora' Subscribe: b'persian' wears a b'tam-o-shanter' Subscribe: b'persian' wears a b'fedora' Subscribe: b'maine coon' wears a b'stovepipe'
ちなみに、subは起動しっぱなしなので、pubをさらに動かすと結果が追加される。sub側をctrl+cで止めてから、pubを実行して、そのあとにsubを起動し直したとしても、subが拾うのは、あくまでsub起動後にpubが実行された場合のみだった。
ZeroMQ
まずはインストールしよう。
$ pip3 install pyzmq Collecting pyzmq Downloading pyzmq-15.1.0-cp34-cp34m-macosx_10_6_intel.whl (1.3MB) 100% |████████████████████████████████| 1.3MB 431kB/s Installing collected packages: pyzmq Successfully installed pyzmq-15.1.0
ソースコードを用意して、
subから実行。もちろん、2行目以降はpub起動後に表示されたもの。
$ python3 zmq_sub.py Subscribe: maine coon wears stovepipe Subscribe: maine coon wears stovepipe Subscribe: persian wears stovepipe Subscribe: persian wears bowler
後からpubを実行。
$ python3 zmq_pub.py Publish: maine coon wears a stovepipe Publish: norwegian forest wears a stovepipe Publish: siamese wears a tam-o-shanter Publish: norwegian forest wears a fedora Publish: maine coon wears a stovepipe Publish: persian wears a stovepipe Publish: siamese wears a stovepipe Publish: persian wears a bowler Publish: norwegian forest wears a tam-o-shanter Publish: siamese wears a stovepipe
そのほかのパブサブツールもいつかお世話になるかも知れないのでチェック。
RabbitMQ - Messaging that just works
github.com
Welcome to PyPubSub’s Home Page! — PyPubSub v3.3 Documentation
(つづく)