1

私は常に更新を実行し、新しいデータを収集したいPythonプログラムを持っています。基本的に、私は多数のドメインからデータを収集しています。私のプロセッサは、実行に約 1 日半かかります。それらが終了したら、自動的に最初からやり直したいと思います。

whileこれらのプロセッサ(主にpyV8)をサポートするために使用しているパッケージの一部には、メモリがゆっくりと蓄積するという問題があり、私は得意ではないため、最初に関連するすべてを強制終了せずにプロセスを再起動するためにループを使用したくありませんそのような大きなパッケージでメモリリークのデバッグに飛び込むのに十分なプログラマ。したがって、関連するすべてのプロセスが正常に終了してから生き返る必要があります。

supervisordこの種の作業を行うことができると聞いたことがありますが、.confファイルをいじるのが好きではなく、すべてを python 内に保持することを好みます。

概要: while ループに入れたり、Python スクリプト内でこの種の動作を作成したりするために使用できるスクリプト/パッケージを使用して、関連するすべてのプロセスを強制終了するパッケージはありますか?

4

1 に答える 1

2

使えない理由がわかりませんsupervisord。構成は非常にシンプルで非常に柔軟で、Python プログラムに限定されません。

たとえば、次のファイルを作成できます/etc/supervisor/conf.d/myprog.conf

[program:myprog]
command=/opt/myprog/bin/myprog --opt1 --opt2
directory=/opt/myprog
user=myuser

次に、スーパーバイザーの構成をリロードします。

$ sudo supervisorctl reload

そしてそれはオンです。それは十分に単純ではありませんか?

構成の詳細supervisord: http://supervisord.org/subprocess.html

于 2015-04-30T17:35:32.557 に答える