Pertanyaan Membuat permintaan HTTP non blocking di aplikasi Rails


Apakah ada yang tahu cara membuat permintaan HTTP nonblok keluar dari dalam Rails? Saya akan membutuhkan tubuh respon pada akhirnya dan saya mencoba untuk menghindari membesarkan kerangka kerja baru untuk menjaga hal-hal sederhana.

Terima kasih


5
2017-10-11 02:08


asal


Jawaban:


Untuk mensimulasikan bagian non-blocking, setel read_timeout rendah. Juga bersiap untuk menangkap kesalahan waktu tunggu yang dihasilkan:

request = Net::HTTP::Get.new(url)
http = Net::HTTP.new(url.host, url.port)

http.read_timeout = 1

begin
  http.request(request)
rescue Timeout::Error => e
end

Saya tidak tahu mekanisme rel dasar yang akan membuat panggilan non-blocking dan menerima respons. Rel sangat terikat dengan siklus permintaan / tanggapan, jadi biasanya jalur eksekusi pengontrol dasar akan berakhir sebelum panggilan HTTP kembali.


0
2018-03-21 01:28



Anda mencari "pekerjaan latar belakang" atau "pekerja latar belakang." Ada berbagai permata untuk ini. Entri blog ini memiliki gambaran yang bagus tentang apa yang ada di luar sana. delayed_job sangat populer sekarang.


-1
2017-10-11 02:40