TCP を介して多くのサーバーのステータスをポーリングする良い方法を探しています。現在、同期コードと Minecraft クエリ プロトコルを使用していますが、サーバーがオフラインになると、キューの残りの部分が停止します。
現在のコードで発生しているもう 1 つの問題は、一部のサーバーがファイアウォールでポーリングに使用するサーバーをブロックする傾向があるため、それらのサーバーがサーバーリストにオフラインで表示されることです。
MongoDB データベース内のすべての Minecraft サーバーが +-10 分ごとにチェックおよび更新される無限ループで Ruby rake タスクを使用しています (ループを(600/ s.count.to_i).ceil
数秒スリープさせることで、この間隔を設定しようとしています。
できればRubyの非同期コードを使用して、このタスクを効率的に実行できる(そしてサーバーがファイアウォールで私のIPをブラックリストに登録するのを防ぐ)方法はありますか?