- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Ruby 指定時間事にループ処理のコードが不安です)
Ruby 指定時間事にループ処理のコードが不安です
このQ&Aのポイント
- Rubyを使用して一定時間ごとにループ処理を行うコードを作成しましたが、不安があります。
- コードの動作は問題ありませんが、正しいかどうか確認したいです。
- プログラミングを始めたばかりの学生ですので、アドバイスがあれば助かります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>処理後に初期化するなり前回のデーターに上書きしていくような方法はありませんでしょうか? 何を?? 文脈から見て、「60秒毎の処理に近づける方法は無いか?」という質問だとして回答します。 まず考えつくのは、sleepを1秒にして、現在時刻を調べ、秒が0であれば実行するという方法。 until Time.now.sec==0 sleep 1 end 微妙なタイミングで0秒の所をスキップしてしまう可能性があるため、もうちょっと工夫が必要。 あとは、Rubyの中で繰り返すのはやめて、1回限りの処理にして、OSの機能で1分毎に起動してもらう。
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10358)
回答No.1
プログラムは書いたとおりに動くので、「処理をして60秒待ってまた処理を繰り返す」と言うことになります。これは一般的な日本語の意味としての「1分毎に実行」とは違います。 サーバーからの応答が返るのに例えば平均1秒かかるとすると、2回サーバーに問い合わせてるようなので、「約62秒毎の実行」となります。目的によってはこれで十分でしょう。
質問者
補足
僕の考えてた一定時間ごとにループ処理をするのとは表現方法が違ったのですね(笑) 今回のコードだとサーバーの返り値を考えなければいけないのですね・・・なるほどです。 理解できました。ありがとうございます。 すみませんが追加でなんですが、教えて頂けると助かります。 上記載のコードですとご指摘の「処理をして60秒待ってまた処理を繰り返す」となると実行結果がループされる度に蓄積されていくことのにきずきました。 処理後に初期化するなり前回のデーターに上書きしていくような方法はありませんでしょうか? 宜しくお願いいたします。m(_ _)m
お礼
ruby側での処理はスキルを上げる為に御指摘頂いた点を重点に煮詰めていこうと思います。 現時点での対応としてサーバー側にてクローンを実施してみようと思います。 この度はご丁寧に最後まで対応していただいてありがとうございます。