死体

プロセス出力のイベントベースの排水
今すぐダウンロード

死体 ランキングとまとめ

広告

  • Rating:
  • ライセンス:
  • BSD License
  • 価格:
  • FREE
  • 出版社名:
  • Vincent Driessen
  • 出版社のWebサイト:
  • http://datafox.nl

死体 タグ


死体 説明

プロセス出力のイベントベースの排水 ドレイはサブプロセスの周囲の抽象化です.popen.popenプロセス出力を読み取り、制御するイベント-wise.drainersも、プロセスやスレッド自身と直接対話する必要なしに実行されているプロセスを適切にまたは強制的に中止することを可能にします.processa Drederが工場で、 subprocess.popenの周囲のコントローララッパーは、subprocess.popenのイニシャライザが取り込むすべての(オプション)パラメータをすべて取ります。たとえば、最小のドレインーはコマンドアレイを取ります.DrainerDefのIGNORE_EVENT(LINE、IS_ERR):PASSMY_DRAINER = DREADER(、READ_EVENT_CB = ignore_event)my_drainer.start()です。許可されています:my_drainer = drainer(、shell = true、bufsize = 64、read_event_cb = ignore_event)my_drainer.start()予約されているドレナの唯一の引数はstdoutとstderrです。 。排水装置はそれらが明示的にsubprocess.pipipipeであることを必要とし、それに応じてそれらを設定します。コールバックドライン人の強さは、プロセスの標準出力または標準エラーストリームから読み取られる各行が呼び出されているコールバック関数につながるという事実にあります。これにより、ラインベースの場合は、実質的にあらゆるプロセスの出力を処理できます。それが必須です。指定されたコールバック関数は、特定の署名を持つ必要があります.DEF MY_CALLBACK(行、is_err):...それは2つのパラメータを取るべきです:行(文字列)とis_err(ブール値)。後者は、行が標準のエラーストリームから読み取られていることを示します。それ以上にはありません。それは何も返す必要はありません:それは戻り値は無視されます。次の例のように、コールバックもクラスメソッドになることがあります。そのような場合は、read_event_cbパラメータの値としてfoo.my_methodを渡します.class myclass(オブジェクト):def my_method(self、line、is_err):... foo = myclass()my_drainer = drainer(、read_event_cb = foo.my_method)my_drainer.start()粒度は現在1行です。事前定義されたデータの塊を読みたい場合は、このレポをフォークして、排水装置サブクラスを自分で実装してください。各行が読み込んだ後に呼び出されないコールバックが必要な場合は、任意の時間または行の数の後に、あなた自身を実装する必要があります。 (インスピレーションのための例のディレクトリを参照してください。)ProcessesDrainerの中止実行中の実行中のプロセスを中止することで、実行中のプロセスを中止し、プロセスを強制的に送信します.Perminate()メッセージある条件が発生したとき。デフォルトでは、プロセスは異常終了しません。終了基準を指定するには、パラメータを取得しないコールバック関数を実装し、中絶が望まれる場合はtrueを返します。たとえば、長い実行プロセスの場合は、ディスクが(ほぼ)完全に入っている場合は終了したい場合があります。しかし、空き容量がどのくらい空いているかをチェックすることができるので、控えめにそれを控えめにしたいと思うかもしれません:def out_of_diskspace():left = hantedyTools.check_disk_free()total = handyTools.check_disk_total()戻る(左/合計)<0.03 #以下の排水装置はクランカーを実行し、5秒ごとにディスク#が(ほぼ)満杯であるかどうかを確認します。空きディスク容量が3%.my_drainer = drainer(、read_event_cb = ignore_event、steed_abent = out_of_diskspace、check_interval = 5.0)ExitCode = My_Drainer.Startを中止します。 ()例はかなり自己説明です。 ExitCodeを確認してプロセスの結果を確認できます。要件: ・Python


死体 関連ソフトウェア