Pueue-это инструмент управления задачами командной строки для последовательного и параллельного выполнения длительных задач.
Проще говоря, это инструмент, который поднимает команды оболочки . Кроме того, есть много удобных функций и абстракций.
Поскольку Pueue не связан ни с одним терминалом, вы можете управлять своими задачами из любого терминала на той же машине. Очередь будет постоянно обрабатываться, даже если у вас больше нет активных сеансов SSH.
Pueue считается функцией полной? Все запланированные функции были добавлены, и только незначительные улучшения, ошибки и регулярные работы по техническому обслуживанию будут объединены.
pueued Daemon работает на заднем плане. Не нужно регистрироваться.log и status , если вы хотите отобразить информацию о задачах в другой программе.wait , чтобы дождаться определенных задач, группы (или всего), чтобы закончить.Pueue не предназначен для того, чтобы быть программируемым (сценарием) планировщиком/исполнителем.
pueue внимание уделяется человеческому взаимодействию, то есть, он должен использоваться настоящим человеком на какой -то ОС. См. Раздел целей дизайна
Благодаря этому набор функций pueue и pueued , а также их реализация и архитектура были простыми по дизайну! Несмотря на то, что его можно в какой -то степени, это не было создано для этого, и официальной поддержки нет!
Определенно необходимость в сложном планировщике/исполнителе с расширенным API и вариантами планирования, но это задача для другого проекта, так как это не то, для чего был создан Pueue.
Есть несколько разных способов установить Pueue.
Предпочтительным способом установки Pueue является использование диспетчера пакетов вашей системы. Обычно это автоматически развертывает файлы служб и завершения.
Pueue был упакован для довольно много распределений, проверьте таблицу справа для получения дополнительной информации.
Статически связанные (если возможно) двоичные файлы для Linux (вкл. ARM), Mac OS и Windows создаются на каждом выпуске.
Вы можете скачать двоичные файлы для клиента и демон ( pueue и pueued ) для каждого выпуска на странице выпуска.
Просто загрузите обе двоичные файлы для вашей системы, переименуйте их в pueue и pueued и поместите их в папку $PATH /Program.
Pueue создан для текущей stable версии ржавчины. Он может собирать старые версии, но это не тестируется или официально поддерживается.
cargo install --locked pueue Это установит Pueue в $CARGO_HOME/bin/pueue (по умолчанию ~/.cargo/bin/pueue )
Pueue создан для текущей stable версии ржавчины. Он может собирать старые версии, но это не тестируется или официально поддерживается.
git clone [email protected]:Nukesor/pueue
cd pueue
cargo build --release --locked --path ./pueue Последние двоичные файлы будут расположены в target/release/{pueue,pueued} .
Проверьте вики, чтобы начать :).
Есть также подробные разделы для (надеюсь) каждую важную функцию:
Кроме того, есть вариант справки (-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 разработан, чтобы быть удобным помощником для одного пользователя.
Он должен работать отдельно и без какой-либо внешней интеграции. Идея состоит в том, чтобы сделать это простой и предотвратить ползучесть.
Кроме того, Pueue считается полным? Все запланированные функции были добавлены, и только незначительные улучшения, ошибки и регулярные работы по техническому обслуживанию будут объединены.
Для записи, следующие функции не были включены, так как они вышли из строя:
pueue-lib , которая обеспечивает правильные вызовы API для pueued . Тем не менее, имейте в виду, что pueued по -прежнему должен быть исполнителем минималистичной задачи с максимально небольшой логикой планирования.Похоже, есть необходимость в каком -то проекте, который удовлетворяет все эти точки, упомянутые выше, но это будет задача другого инструмента. Я очень поощряю подвеска Pueue, и я хотел бы видеть, как вилки превращаются в другие крутые проекты!
Slurm - это функция, богатая и широко используемая система управления кластерами и планирования. Если вы окажетесь в необходимости в сложных настройках, таких как несколько рабочих пулов или распределенных узлов, Slurm будет намного лучше подходит, чем Pueue.
Надежный и спектакльный параллельный процессор с текстовым жобологом и n-retries. GNU Parallel способна масштабировать параллелизацию с несколькими хостами и имеет сложный код, чтобы иметь глубокую интеграцию между различными инструментами и оболочками, а также другие расширенные функции. Pueue отличается от GNU Parallel, сосредоточившись больше на видимости во многих различных долговые команды, и создавая центральное место для сохранения команд, а не на фокусе GNU Parallel на определении конкретной задачи.
PM2-это инструмент управления процессами, у которого больше внимания уделяется управлению повторяющимися и долгожившимися задачами. Это кажется довольно зрелым и имеет богатый интерфейс.
Очень легкие системы очереди работы, которые не требуют настройки, технического обслуживания, надзора или каких-либо длительных процессов.
Ссылка на проект
Task Spooler - это система партии Unix, где запускаются задачи один за другим.
Ссылки на Ubuntu Manpage и вилку на GitHub. Первоначальный сайт, кажется, не падает.
Запросы на функции и запросы на привлечение очень ценятся и приветствуются!
Во всяком случае, пожалуйста, поговорите со мной о ваших идеях, прежде чем начать взламывать! Всегда приятно знать, над чем вы работаете, и у меня может быть несколько предложений или советов :)
В зависимости от типа вашего вклада, вы должны отрываться от main ветви. Pueue достаточно зрелой, чтобы больше не нуждаться в ветви development , и все изменения собираются там до того, как будет выпущен новый релиз. Срочные горячие положения могут быть развернуты в отдельном филиале, но это будет определено в каждом конкретном случае.
Есть также Руководство по архитектуре, которое должно дать вам краткий обзор и введение в проект.
Copyright © 2019 Arne Beer (@nukesor)