どうも、こんにちは。
vpsサーバーのcronを使ってPythonスクリプトを定期実行しているのですが、基本的なcronの書き方だと最小単位は1分になるので1分ごとにしか実行できません。
これを例えば10秒だとか30秒ごとのように1分未満の単位で定期実行しようと思ったら工夫が必要になります。
一つは、cronの中にsleepを使って実行を遅らせることによって秒単位の実行を可能にするやり方。
ですが、私はまだcronにそこまで慣れていなかったので、cronでそのような書き方ができることを知りませんでした。
そこで、取った方法がPythonのコードの中にsleep分を入れてしまうやり方です。
これはいつも使っているので簡単にできました。
例えば、こんな感じのコードになります。
import time
for i in range(3) :
処理
time.sleep(20)
これは、組み込み関数のrange()関数を利用しています。
range()の括弧内に書いた数字だけ処理を繰り返すことができます。
今回は20秒のsleepを入れていますので、20秒ごとに3回繰り返すことができます。
これで1分間に3回の定期実行をすることができるようになり、より詳細にデータの取得が可能になります。
特にスクレピンングをする場合には、数秒でページの内容が更新されることもよくありますのでデータの取得を取りこぼしたくない場合はこのような処理も必要になることがあると思います。
そんな感じです。
それでは!
コメント