問題タブ [anyevent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - AnyEvent を使用したシングル スレッド サーバーの作成 (Perl)
ローカルホストでリッスンし、基本的な呼び出しと応答の種類のインターフェイスを提供するローカル サービスの作成に取り組んでいます。私が始めたいのは、telnet 経由で接続でき、受信した内容をエコーできるベビー サーバーです。
AnyEvent はこれに最適だと聞いたことがありますが、AnyEvent::Socket のドキュメントには、これを行う方法の良い例が示されていません。これを AnyEvent、AnyEvent::Socket、AnyEvent::Handle で構築したいと思います。
現在、小さなサーバー コードは次のようになっています。
これは機能せず、localhost:44244 に telnet で接続すると、次のようになります。
telnet 経由で接続できる小さなシングル スレッド サーバーを作成し、与えられたものを出力してさらに入力を待つ方法を理解すれば、そこからさらに多くのことができると思います。何か案は?
perl - ポートを再利用するソケットで AnyEvent::Handler を使用する方法
最近、ユーザーが非同期/イベント駆動型プログラミングを行えるようにする優れた perl モジュール「AnyEvent」に出くわしました。
正常に動作する次のスニペットを作成しました。私が抱えている問題は、多くのソケットを開いたり閉じたりした後、すべてのクライアントポートをすぐに使い果たしてしまうことです (「netstat -ant」は、20,000 以上のソケットが TIME_WAIT 状態であることを示しています)。
IO::Socket::INET で TCP ソケットを作成し、AnyEvent::Handle で新しく作成したソケットを使用することは可能でしょうか?
試してみましたが、うまくいきません。提案/コメントをお待ちしております。
それを調べて提案してくれた池上に感謝します。ただし、SO_REUSEADDR が有効になっていないようです。これが私が使用したコードです(彼の提案に基づく)
私のシステムはUbuntu 11.04です。ディレクトリ /proc/sys/net/ipv4 には、次の 2 つのファイルの内容があります。
% 以上の tcp_tw_recycle
1
% 以上の tcp_tw_reuse
1
perl - 非同期コードでの perl コールバック
ファイルが特定のフォルダーに作成されたときにジョブを取得するキュー マネージャーを作成しようとしています。AnyEvent を使用してコードを作成したので、非同期です。私の問題は、コールバックを使用して、サブルーチン add_route および del_route から戻り値を配信しようとしていますが、AE::timer が停止せず、コールバックが取得した値が変数に保存されないことです。 $return_code. どこで間違ったのですか?
PerlMonksに投稿されたクロス
perl - AnyEvent::DNS の最大要求制限はありますか?
AnyEvent::DNS
一部の DNS サーバーで自分のドメインを解決するために使用したいと考えています。サーバーリストは、それぞれ約 60 以上のサーバーの 2 つの場所から取得されます。1 つのサーバー リストに対してのみ解決を実行すると、問題はありません。しかし、すべてのリストに対して解決を実行すると、エラーが発生しました: "unable to create either an IPv4 or an IPv6 socket"
.
私のスクリプトは次のとおりです。
perl - AnyEvent fork_call と ping
何百ものホストに (Linux システムの ping を使用して) ping を実行し、標準出力から ping のデータ (パケット損失、送信されたパケットの量、受信されたパケットの量など) を取得する perl モジュールを作成しようとしています。各ホストの。AnyEvent::Util fork_call を使用しましたが、stdout が収集されないため行き詰まりました。私がやろうとしていることを示す小さなスクリプトを作成しました:
どこが間違っていますか?
perl - 単純な ZeroMQ Perl (AnyEvent) HelloWorld プログラムが 2 回のループ反復後にハングする
AnyEvent で実装するために、ZeroMQ ガイドの helloworld サーバー プログラム ( hwserver.pl ) を少し変更しました。しかし、REQ/REP を 2 回繰り返した後、プログラムがハングします。誰かが理由を理解できますか?
サーバーは次のとおりです。
そして、ここにクライアントがあります:
サーバーの出力は次のとおりです。
クライアントの出力は次のとおりです。
どうしたの?
perl - Perl AnyEvent が HTTP エラー 595 をスローする
次のコードでPerl AnyEvent HTTPモジュールを使用して非同期リクエストを作成しようとしています。
リクエストから次の応答を受け取り続けます。
このエラーの理由について AnyEvent のドキュメントを確認しましたが、うまくいきませんでした。同じ結果が得られるタイムアウト時に再試行する提案を除いて、この問題に関する他の有用なスレッドを見つけることができません。単純な 'wget' は、同じ URL とその有効な URL に対して機能します。この問題をデバッグする方法について誰か指摘できますか?
perl - Perlで子ウォッチャーを使用しているときに子プロセスが生きているかどうかを確認する方法
AnyEvent と EV を使用していくつかのコードを実装しようとしています。チャイルドウォッチャーをインストールしたい(以下のやりたいことのモックアップ)
child_alive() の作成と、さまざまなコールバックのタイミングの把握、および kill_child() での終了の配置について、助けが必要です。プロセスが終了する前に cleanup_after_child() が呼び出されるようにする必要があります。
AnyEvent Signal ウォッチャーを使用すると役立ちますか? 私の目標は、最初にプロセスの子プロセスを強制終了し、その後クリーンアップすることで、デーモン プロセスを安全にシャットダウンできるようにすることです。以前に関連する質問 ( perl での子プロセスの待機中) を行いましたが、終了処理中にそのバグが発生するのを防ぎたいと考えています。
ありがとう
編集: child_alive() 関数に対して次のように機能しますか?
言い換えれば、コールバックは子が終了するとすでに呼び出されているのでしょうか、それともコールバックは EventLoop の次の繰り返しでのみ実行されるのでしょうか? もしそうなら、すべてのシグナルが処理された後にのみ終了するにはどうすればよいですか? 次のようなすべてのイベントを削除するだけですか。
申し訳ありませんが、信号が一般的にどのように機能するかよりも、AnyEvent がこれらの信号をどのように処理するかを理解しようとしています。