Web からデータをダウンロードし、データベースからデータを読み取り、そのデータベースにデータを書き戻す約 10 の異なる Python スクリプトがあります。これを 10 秒 (または最後のタスクが完了してから 10 秒) ごとに繰り返します。
問題は、これらのタスクを実行するための最良のアプローチは何ですか? 私はいくつかの方法を考えることができます:
a while True タスクを実行してから一定時間スリープします。これは、supervisord のようなウォッチドッグによって保護され、常に稼働していることを確認できます。
スクリプトにタスクを 1 回だけ実行させ、別のプロセスによって 10 秒ごとに 1 回外部からスクリプトを呼び出します。
スクリプトにタスクを実行させると、たとえば 1 時間 (1 時間は 10 秒ごと)、ウォッチドッグを使用して、1 時間が経過したらタスクが再度実行されるようにします。
長時間にわたってメモリの問題などに対処したくないため、実際に何かを実行するプロセスを長時間実行することは避けたいと思います。
追加情報
スクリプトは、それぞれが異なるソースからデータを取得し、異なるデータをクエリ、計算、およびデータベースに挿入するため、異なります。
取得されるデータはリアルタイムであるため、タスクは 10 秒ごとに実行されます。頻繁にデータを更新し続けるだけでなく、すべての履歴データをデータベースに保持する必要があります。
スクリプトによって使用されるリソースは多数あります。MySQL 接続、HTTP 接続、Redis 接続などです。以前、特に MySQL 接続で長時間実行アプローチを使用する際に問題が発生しました (MySQL サーバーのようなものはなくなりました。すべての接続が閉じられていましたが)。したがって、スクリプトをより短い時間で実行する傾向があります。
これでいくつかの一般的なアプローチは何ですか?