yapılandırılabilir bir zaman aralığı içinde bir Raylar isteğine cevap nasıl o neden oluyor çünküBen Zaman Aşımı modülün kullanımı olmadan benim kontrolörleri eylem aşağıdaki davranış elde etmek istiyorum
class AdminController < ApplicationController
def example
Timeout.timeout(params[:timeout].to_i) do
... # try to process the request within params[:timeout] seconds
end
rescue Timeout::Error
render nothing: true, status: :gateway_timeout
end
end
Ben Zaman Aşımı kullanımını önlemek istiyorsanız veritabanı bağlantısı sızıntıları dahil olmak üzere benim uygulamada birçok hata. Rapor edilen diğer bazı sorunlar: http://www.mikeperham.com/2015/05/08/timeout-rubys-most-dangerous-api/
Bu istekte gerçekten ne yapıyorsunuz? Zaman aşımı, daha büyük bir soruna kötü bir çözümdür - bu kodun bir kısmını önceden işleyebilir veya bir işin içine dönüştürebilir ya da bir talebi bir devlet makinesi ile birden çok aşamaya bölebilirsiniz. – court3nay
@ court3nay İşlenecek 100 ms ile 30 saniye arasında sürebilecek işleri çalıştıran bir web hizmetidir. Her müşteri, istenen işler için kendi kabul edilebilir zaman aşımlarını belirtebilir. – barbolo
@barbolo geçerli kodunuzda bir kusur var. Zaman aşımını bir 'başlangıç 'bloğunun içine sarmak en iyisi, ardından' rescue => e'. Neyi başarmaya çalışıyorsun? Sorgu çok uzun sürerse bir isteği durdurma? – onebree