バックグラウンドでRepl / CLIおよびFeedコマンドを実行する

バックグラウンドでRepl / CLIおよびFeedコマンドを実行する

replを開始するのに長い時間がかかると仮定するpythonと、エイリアスを作成しますpython-current "command to run"

ベストアンサー1

Pythonディストリビューションにはこの種のオープンを行うことはなく、「バッテリーを含む」もありません。

Editorなどのプログラムはこの種の作業を処理できます。なぜなら、他のファイルを開くときに何をすべきかは非常に明確だからです。同じ実行可能ファイルによって処理される新しいファイルでウィンドウ/タブを開くだけです。

このようなものを直接実装することは難しくありませんが、最初のコマンドがまだ完了しておらず、2番目のコマンドが予約されている場合に何が起こるのかを考慮する必要があります。

  • 最初のコマンドを中断
  • 2番目のコマンドをキューに入れます。
  • 並列に実行(コマンドを待つ複数のスレッドがない場合は追加の開始時間が必要です)

私はディレクトリ、httpリクエスト(Twistedベースのシステム上)、およびZeromqのファイル検索に基づいてモジュールをロードして実行するためにPythonを実行するように指示しました。 IMHO何が適切かは、システムに必要なものが何であるかによって異なります。私は常に効率的でオーバーヘッドが最小限に抑えられています。適切にインターフェースする必要がありますpython-current

多くの場合、これはいくつかのモジュールをリロードすることと組み合わせられます(新しいコマンドを処理するため)。これにはreload()組み込み機能を使用できます。

import mycommand
# test for a command that requires reloading
reload(mycommand)


注:特にUIコードを扱うときは、このリロードが役に立つと思います。 PythonはPerlと同等に実行可能ファイルをロードします(数年前、私のシステムでは0.002秒time python -v)。基本モジュールをロードするのに約10倍かかります(time python -c "exit();", 0.025s). But when using UI based programs the whole startup easily grows to several seconds and more. And in that case implementing dynamic command reading and having apython-current`が意味があります)

おすすめ記事