
incrond
着信ファイルを監視するために使用するディレクトリ。各ファイルがディレクトリに到達すると、それを処理するためにPythonスクリプトが呼び出されます。
ファイルが処理できるよりも早く入ると、問題が発生します。この場合、システムが過負荷になり、結果を予測できなくなります。
incrond
開始できるプロセスの最大数を設定する方法はありますか?制御された方法でファイルを処理できるように、他のツールを使用してファイル処理をキューに入れることはできますか?
答え1
incrond
たとえば、CPUまたはメモリの数が原因で並行して実行することが合理的なレベルを超える処理プロセスを開始しないでください。下記の数字Nはこれです。
処理プロセスは、「in」ディレクトリのファイルによってのみ開始でき、incrond
何も残らないまで「in」ディレクトリのファイルを処理し続けます。複数のプロセスが実行されている場合は、両方のプロセスが同じタスクを処理しないようにいくつかの調整が必要です。
Pythonスクリプトを引数としてファイルを使用してのみ実行できる場合は、処理するincrond
新しいファイルがある限り、元のPythonスクリプトを生成し続けるラッパースクリプトを起動します。それ以外の場合はファイルが存在します。icrond
このラッパースクリプトは、同時に実行中のN個未満がある場合に開始されます。ラッパースクリプトはファイルの受信速度が高い限り処理を続けますが、並列スクリプトが多すぎて何も見逃したり、システムの速度を不必要に低下させたりしません。受信速度が処理速度を下回ると、まだ処理する必要があるファイルの数が最終的にゼロに減り、すべてのラッパースクリプトが終了します。
到着したファイルと処理されたファイルを簡単に区別できない場合は、ToDoファイルが処理されるディレクトリにいくつかのincrond
ToDo作業ファイルを作成できます。
答え2
タスクスプーラを使用してPythonスクリプトコマンドを送信すると、キューに追加され、順番に処理されます。 https://www.ostechnix.com/add-linux-commands-queue-execute-one-one/