3

pyzmq コネクタで zeromq を使用する python スクリプトがあります。スクリプトは本当に基本的なもので、ZMQ_REP ソケットを使用してメッセージを受信し、小さな処理を行って送り返します。これらすべてが無限ループで行われます。マルチスレッドなどはありません。

問題は、サーバーでそのサービスを実行すると、約 15 時間後に応答が停止し、まだ実行されていて、ポートがまだバインドされていることです。そのため、ZMQ_REQ ソケットを使用してそのスクリプトにメッセージを送信すると、応答が得られません。スクリプトを再起動すると、使用されていないすべてのメッセージが zmq キューから取得されるため、pyzmq コネクタまたは python または zmq ソケット構成に問題があると思われます。

2 つの異なる国にある 2 つの異なるサーバーでそのスクリプトを試しました。また、文字列メッセージを受信して​​送り返すだけの基本的なpythonソケットを使用するpythonスクリプトを実行しようとしましたが、再起動せずに10日間問題なく動作し、メッセージを送り返しています。したがって、問題は確かに zmq/pyzmq のどこかにあります。

4

1 に答える 1

1

メッセージはどのくらいの頻度で送信されますか? 信頼できる接続を維持するために、ハートビートを実装する必要がある場合があります。ガイドに記載されている「パラノイド海賊」パターンは非常にうまく機能します。

于 2013-03-28T01:45:25.513 に答える