0

Rails アプリでかなり頻繁に別のサーバーに POST する必要がありますが、永遠にかかります。キャッチは、私が応答を必要としないということです。リクエストを送信してから、応答を待たずに接続をドロップし、遅延したジョブやイベントマシンに入ることなく、速度を上げる方法はありますか? それが唯一の選択肢である場合、私はそれに対処できますが、そうする必要がない方が人生は簡単になります.

これが私が今持っているものです:

remoteAddress = 'http://remote.server.address/'

params = {
  'a' => a,
  'b' => b }

url = URI.parse(remoteAddress)
Net::HTTP.post_form(url, params)
4

1 に答える 1

3

呼び出しを行う前にNet::HTTPオブジェクトをインスタンス化する場合、そのread_timeout属性を非常に小さい数値に設定し、結果の Timeout::Error 例外をキャッチして先に進むことができます。

URL の個々の部分とクエリ文字列形式の POST データを使用する例を次に示します。

endpoint = Net::HTTP.new(host, port)
endpoint.read_timeout = 0.001
endpoint.post(path, params_as_query_string) rescue Timeout::Error
于 2013-02-14T16:17:09.820 に答える