3

1 日に数千回実行されるバックグラウンド python スクリプトがあります。私は単にそれを実行していpython foo.pyます。スクリプト自体がいくつかのインポート (解析ライブラリと sqlalchemy) を実行し、データベース接続を確立して解析を行い、データを db に保存します。

スクリプトが実行されるたびに Python 環境をロードするために多くのオーバーヘッドが追加されるのではないかと思っています。

スクリプトが一度開始され、何かを実行する必要があるかどうかを確認するためにポーリング ループが発生するようにすることもできますが、これを実行する価値があることを明確にしたいと思います。

入力はありますか?

4

1 に答える 1

4

もちろん、それには多くのオーバーヘッドが追加されますが、組み込みの poll または select(); を使用する方が (ごくわずかですが) 環境に優しくなります。ただし、クラッシュしたかどうかを確認するためにウォッチドッグを用意するか、inittab から respawn を使用する必要があります。サーバーの負荷が問題ない限り、努力する価値はないかもしれません。


言及するのを忘れていましたが、cron ジョブでは気付かないメモリ リークが、スクリプトがデーモンとして実行されると、サーバーを食い尽くすモンスターになる可能性があります。最初の 1 時間か 2 時間は注意深く観察して、成長しているかどうかを確認します。

于 2011-06-21T21:54:28.643 に答える