https経由でphpスクリプトをトリガーするrubyコードがあります。
ユースケース: phpスクリプトは通常5分で終了するため、10分後にhttpsリクエストのタイムアウトを設定しました。httpsリクエストが開始されてから7分後にコードをトリガーするタイマーが必要です。
httpsリクエストを開始する直前に作成したスレッドを使用することを考えていました。これがこれにアプローチする正しい方法であるかどうかはわかりません。たぶん、スレッドをまったく使用する必要はありません。私はruby1.8.7(2010-08-16パッチレベル302)[i386-mingw32]を使用しています。また、httpsリクエストが正常に終了したときにスレッドを「強制終了」できるかどうかもわかりません。
uri = URI.parse(url)
start = Time.new
http_read_timeout=60*10
connection = Net::HTTP.new(uri.host, 443)
connection.use_ssl = true
begin
response = connection.start() do |http|
http.open_timeout = 50
http.read_timeout = http_read_timeout
http.request_get(uri.request_uri)
# here I need to place a code that is triggered
# in case of custom timeout is reached
end
rescue Timeout::Error
# "Connection failed
time_out_message ="security time out - after #{http_read_timeout} sec"
return time_out_message
end
puts "finished"