RubyでAPIを使った通貨レートの収集をしています。
プログラム内容は、5秒おきにAPIで複数の取引所から通貨レートを取得しそれを表示させています。
また、マルチスレッドでは10秒おきに、同様に複数の取引所からレートを取得していて、
その取得した価格レートは配列に保存し、180個たまったら一番古いのを消す、を繰り返して常に配列には180個ある状態で、その180個の平均を表示させています。
このプログラムを実行していると、なぜか次のようなエラーが出てしまい途中で止まってしまいます。
5分でこのエラーが出ることもあれば、1時間エラーなしで動き続けることもあります。
エラーコード
/usr/local/rvm/rubies/ruby-2.3.4/lib/ruby/2.3.0/net/protocol.rb:158:in `rbuf_fill': Net::ReadTimeout (Net::ReadTimeout)
考えられることは・・・
PCのスペックが悪い?⇒性能もあまりよくない昔から使っているノートPCです
ネット環境が悪い?⇒光回線でもない安いADSL回線です
Rubyの環境構築が悪い?⇒Cloud9というウェブ上のを使用しています
APIの問題?⇒調べる限りAPIの上限は分200回とかなので十分だとは思いますが
プログラムが悪い?⇒マルチスレッドでAPIを同時に叩いているのが負担なのかも
エラーが出ないで24時間プログラムを動かし続けるのにはどうしたら良いのでしょうか?
サーバーレンタル等をすべきなのでしょうか。
宜しくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/04/12 14:35