私はファイアウォールの背後にあるサーバーと、公開されているWebサーバーから情報を要求しています。私は、バックエンドとWebフロントエンド間の通信を管理するためにpyzmqを使用しています。これは、ローカルで通信しているときに、プロキシを使用せずに動作します。プロキシを使用するときに機能します。私はThreadProxyを起動できますが、どうやって止めるのですか?pyzmqでは、どのようにプロキシを停止しますか?
import zmq
from zmq.devices import ThreadProxy
class MyProxy:
def __init__(self)
p = ThreadProxy(zmq.ROUTER, zmq.DEALER) # Not using mon
p.setsockopt_in(zmq.IDENTITY, b'ROUTER')
p.setsockopt_out(zmq.IDENTITY, b'DEALER')
p.bind_in('tcp://*:5550')
p.connect_out('tcp://localhost:5550')
self._proxy = p
def start(self)
self._proxy.start()
def stop(self)
???
実際にプロキシを停止するように要求するにはどうすればよいですか。プロキシがブロックされているか、停止する理由がないため、単に.joinが待機します。私は.term()のコンテキストがありません。
私はこれをLinuxデーモン内で実行したいので、 "kill"は最も洗練された解決策ではありません。また、私が探しているプロキシを制御することもできません。
プロキシが通常のデバイスと同じように動作すると仮定すると、コンテキストが閉じたときにプロキシが終了します。 'myProxy.context_factory()。term()'のようなことをすると、最終的にプロキシが手動で停止されますが、ガベージコレクションではそれもうまく動作します。 – FirefoxMetzger