Pueueは、長期にわたるタスクの連続的かつ並行して実行するためのコマンドラインタスク管理ツールです。
簡単に言えば、それはシェルコマンドのaq ueueを処理するツールです。それに加えて、多くの便利な機能と抽象化があります。
PUEUは端末にバインドされていないため、同じマシンの任意の端末からタスクを制御できます。アクティブなSSHセッションがなくても、キューは継続的に処理されます。
Pueueは機能が完全に異なると見なされますか?計画されたすべての機能が追加されており、わずかな改善、バグフィックス、定期的なメンテナンス作業のみがマージされます。
pueuedはバックグラウンドで実行されます。ログインする必要はありません。logとstatusのJSON出力。wait 。Pueueは、頑丈なプログラム可能な(スクリプト可能な)タスクスケジューラ/エグゼクタになるようには設計されていません。
pueueの焦点は、人間の相互作用にあります。つまり、ある種のOSで実際の人が使用することになっています。設計目標セクションを参照してください
このため、 pueueとpueuedの機能セットとその実装とアーキテクチャは、設計によりシンプルに保たれています!ある程度スクリプト化することはできますが、これのために構築されておらず、公式のサポートもありません!
高度なAPIアクセスとスケジューリングオプションを備えた複雑なタスクスケジューラ/エグゼキューターの必要性は間違いありませんが、これはPueが構築されたものではないため、別のプロジェクトの仕事です。
PUEUをインストールする方法はいくつかあります。
PUEUのインストール方法は、システムのパッケージマネージャーを使用することです。これは通常、サービスファイルと完了を自動的に展開します。
Pueueはかなりの数の分布用にパッケージ化されています。右側のテーブルを確認してください。
Linux(ARMを含む)、Mac OS、およびWindowsの静的にリンクされた(可能であれば)バイナリは、各リリースに基づいて構築されています。
クライアント用のバイナリと、リリースページのリリースごとにデーモン( pueue and pueued )をダウンロードできます。
システム用の両方のバイナリをダウンロードし、それらをpueueとpueuedに変更し、 $PATH /プログラムフォルダーに配置するだけです。
Pueueは、現在のstable錆バージョン用に構築されています。古いバージョンでコンパイルされる可能性がありますが、これはテストされておらず、公式にサポートされていません。
cargo install --locked pueueこれにより$CARGO_HOME/bin/pueueにpueueがインストールされます(デフォルトは~/.cargo/bin/pueueです)
Pueueは、現在のstable錆バージョン用に構築されています。古いバージョンでコンパイルされる可能性がありますが、これはテストされておらず、公式にサポートされていません。
git clone [email protected]:Nukesor/pueue
cd pueue
cargo build --release --locked --path ./pueue最終的なバイナリはtarget/release/{pueue,pueued}に配置されます。
開始するにはwikiを確認してください:)。
(できれば)すべての重要な機能の詳細なセクションもあります。
それに加えて、すべてのコマンドにヘルプオプション(-H)があります。
Interact with the Pueue daemon
Usage: pueue [OPTIONS] [COMMAND]
Commands:
add Enqueue a task for execution.
There're many different options when scheduling a task.
Check the individual option help texts for more information.
Furthermore, please remember that scheduled commands are executed via your system shell.
This means that the command needs proper shell escaping.
The safest way to preserve shell escaping is to surround your command with quotes, for example:
pueue add 'ls $HOME && echo "Some string"'
remove Remove tasks from the list. Running or paused tasks need to be killed first
switch Switches the queue position of two commands. Only works on queued and stashed commands
stash Stashed tasks won't be automatically started. You have to enqueue them or start them by hand
enqueue Enqueue stashed tasks. They'll be handled normally afterwards
start Resume operation of specific tasks or groups of tasks.
By default, this resumes the default group and all its tasks.
Can also be used force-start specific tasks.
restart Restart failed or successful task(s).
By default, identical tasks will be created and enqueued, but it's possible to restart in-place.
You can also edit a few properties, such as the path and the command, before restarting.
pause Either pause running tasks or specific groups of tasks.
By default, pauses the default group and all its tasks.
A paused queue (group) won't start any new tasks.
kill Kill specific running tasks or whole task groups..
Kills all tasks of the default group when no ids or a specific group are provided.
send Send something to a task. Useful for sending confirmations such as 'yn'
edit Edit the command, path or label of a stashed or queued task.
By default only the command is edited.
Multiple properties can be added in one go.
group Use this to add or remove groups.
By default, this will simply display all known groups.
status Display the current status of all tasks
format-status Accept a list or map of JSON pueue tasks via stdin and display it just like "pueue status".
A simple example might look like this:
pueue status --json | jq -c '.tasks' | pueue format-status
log Display the log output of finished tasks.
Only the last few lines will be shown by default.
If you want to follow the output of a task, please use the "follow" subcommand.
follow Follow the output of a currently running task. This command works like "tail -f"
wait Wait until tasks are finished.
By default, this will wait for all tasks in the default group to finish.
Note: This will also wait for all tasks that aren't somehow 'Done'.
Includes: [Paused, Stashed, Locked, Queued, ...]
clean Remove all finished tasks from the list
reset Kill all tasks, clean up afterwards and reset EVERYTHING!
shutdown Remotely shut down the daemon. Should only be used if the daemon isn't started by a service manager
parallel Set the amount of allowed parallel tasks
By default, adjusts the amount of the default group.
No tasks will be stopped, if this is lowered.
This limit is only considered when tasks are scheduled.
completions Generates shell completion files. This can be ignored during normal operations
help Print this message or the help of the given subcommand(s)
Options:
-v, --verbose... Verbose mode (-v, -vv, -vvv)
--color <COLOR> Colorize the output; auto enables color output when connected to a tty [default: auto] [possible values: auto, never, always]
-c, --config <CONFIG> If provided, Pueue only uses this config file. This path can also be set via the "PUEUE_CONFIG_PATH" environment variable. The commandline option overwrites the environment variable!
-p, --profile <PROFILE> The name of the profile that should be loaded from your config file
-h, --help Print help
-V, --version Print version
Pueueは、1人のユーザーにとって便利なヘルパーツールになるように設計されています。
それは、外部統合なしで、スタンドアロンで動作することになっています。アイデアは、それをシンプルに保ち、機能クリープを防ぐことです。
また、 PUEUは機能が完全に複雑になっていると見なされますか?計画されたすべての機能が追加されており、わずかな改善、バグフィックス、定期的なメンテナンス作業のみがマージされます。
記録のために、範囲外であるため、次の機能は含まれていませんでした。
pueue-libライブラリを見てくださいpueuedただし、 pueued 、できるだけ少ないスケジューリングロジックを持つミニマルなタスクエグゼキューターであると依然として想定されていることに留意してください。上記のこれらすべてのポイントを満たすプロジェクトの必要性があるようですが、それは別のツールの仕事になります。フォークが他のクールなプロジェクトに成長することを楽しみにしています。
Slurmは、豊富で広く使用されているクラスター管理とスケジューリングシステムの機能です。複数のワーカープールや分散ノードなどの複雑なセットアップが必要になった場合、SluRMはPueueよりもはるかに適しています。
テキストベースのJoBlogとN-Retriesを備えた堅牢で特徴的な並列プロセッサ。 GNUパラレルは、マルチホストの並列化にスケーリングすることができ、複雑なコードを備えており、異なるツールやシェル、その他の高度な機能にわたって深い統合を備えています。 Pueue 、多くの異なる長期走行コマンドにわたって視界に重点を置き、特定のタスクのチャンキングに焦点を合わせるのではなく、コマンドを保存するための中心的な場所を作成することにより、GNUの並行性と区別します。
PM2はプロセス管理ツールであり、その焦点は繰り返しの長期生活タスクの管理に重点を置いています。それは非常に成熟しているようで、豊富なインターフェイスを持っています。
セットアップ、メンテナンス、監督、または長期にわたるプロセスを必要としない非常に軽量のジョブキューシステム。
プロジェクトへのリンク
タスクスプーラーは、タスクが次々と実行されるUNIXバッチシステムです。
Ubuntu ManPageへのリンクとGithubのフォーク。元のウェブサイトはダウンしているようです。
機能のリクエストとプルリクエストは非常に高く評価されており、歓迎されます!
とにかく、ハッキングを開始する前に、あなたのアイデアについて少し話してください!あなたが何に取り組んでいるかを知っているのはいつでもいいことであり、私はいくつかの提案やヒントを持っているかもしれません:)
貢献の種類に応じて、 mainブランチから支店が必要です。 Pueueはdevelopmentブランチを必要としなくなるほど成熟しており、新しいリリースがプッシュされる前にすべての変更がそこに収集されます。緊急のホットフィックスは別のブランチに展開される可能性がありますが、これはケースバイケースで決定されます。
アーキテクチャガイドもあります。これは、プロジェクトの簡単な概要と紹介を提供することになっています。
Copyright©2019 Arne Beer(@nukesor)