ruby
1 def self.updatestart 2 loop do 3 all = Item.all 4 all.each do |item| 5 #このsetredisにデータベースから必要な情報を取り、apiにリクエストした後、redisにセットする処理を書いています。 6 Item.setredis(item) 7 end 8 #二時間ごとに 9 sleep(60*60*2) 10 end 11 end
https://github.com/jugend/amazon-ecs
gemのamazon ecsを利用しているのですが、
理由はよくわからないのですが、
Amazon::RequestError: HTTP Response: 503 Service Unavailable
というエラーが返ってきます。
一時間に2000回のリクエストを送ってはいけないという制限があるのですが、それも守っており、
念には念をいれて、10秒ごとにリクエストを送るようにしました。
バックグラウンドで、必要な情報をredisにキャッシュするというよな処理を書いておりますが、
リクエストを送り、失敗したときには、
Amazon::RequestError: HTTP Response: 503 Service Unavailable
が返ってきて、メソッド自体が止まってしまいます。
ブラウザでリクエストした場合でも、503が返ってきた場合は避けるような処理も書きたいのですが、、
ただnilや、何かオブジェクトが返ってくるのなら良いのですが、
メソッド自体が止まってしまうので・・。
サーバーからのレスポンスでメソッドが止まらないように処理を書くにはどうしたらよいでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/11 13:52