Pueue é uma ferramenta de gerenciamento de tarefas da linha de comando para execução seqüencial e paralela de tarefas de longa data.
Simplificando, é uma ferramenta que aproveita os comandos de shell. Além disso, existem muitos recursos e abstrações convenientes.
Como o Pueue não está vinculado a nenhum terminal, você pode controlar suas tarefas de qualquer terminal da mesma máquina. A fila será processada continuamente, mesmo que você não tenha mais sessões SSH ativas.
Pueue é considerado preenchido pelo recurso?. Todos os recursos planejados foram adicionados e apenas pequenas melhorias, fixos de insetos e trabalho de manutenção regular serão mesclados.
pueued é executado em segundo plano. Não há necessidade de ser logado.log e status se você deseja exibir informações sobre tarefas em outro programa.wait para aguardar tarefas específicas, um grupo (ou tudo) terminar.O Pueue não foi projetado para ser um agendador de tarefas/executor programável (scriptable) de serviço pesado.
O foco do pueue reside na interação humana, ou seja, é suposto ser usado por uma pessoa real em algum tipo de sistema operacional. Veja a seção de metas de design
Devido a isso, o conjunto de recursos de pueue e pueued , bem como sua implementação e arquitetura, foram mantidos simples pelo design! Embora possa ser roteirizado até certo ponto, não foi construído para isso e não há apoio oficial!
Definitivamente, há a necessidade de um agendador de tarefas/executor complexo com opções avançadas de acesso e agendamento da API, mas esse é o trabalho para outro projeto, pois não é para isso que foi criado Pueue.
Existem algumas maneiras diferentes de instalar o pueue.
A maneira preferida de instalar Pueue é usar o gerenciador de pacotes do seu sistema. Isso geralmente implanta arquivos e conclusões de serviço automaticamente.
Pueue foi embalado para algumas distribuições, verifique a tabela à direita para obter mais informações.
Os binários estaticamente vinculados (se possível) para Linux (incl. ARM), Mac OS e Windows são criados em cada liberação.
Você pode baixar os binários para o cliente e o daemon ( pueue e pueued ) para cada lançamento na página de liberação.
Basta baixar os dois binários para o seu sistema, renomeá -los para pueue e pueued e colocá -los na pasta $PATH /Program.
Pueue é construído para a versão stable atual. Pode compilar em versões mais antigas, mas isso não é testado ou oficialmente suportado.
cargo install --locked pueue Isso instalará o pueue em $CARGO_HOME/bin/pueue (o padrão é ~/.cargo/bin/pueue )
Pueue é construído para a versão stable atual. Pode compilar em versões mais antigas, mas isso não é testado ou oficialmente suportado.
git clone [email protected]:Nukesor/pueue
cd pueue
cargo build --release --locked --path ./pueue Os binários finais estarão localizados em target/release/{pueue,pueued} .
Verifique o wiki para começar :).
Também existem seções detalhadas para (espero) todos os recursos importantes:
Além disso, há uma opção de ajuda (-h) para todos os comandos.
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
O Pueue foi projetado para ser uma ferramenta ajudante conveniente para um único usuário.
Deveria trabalhar independente e sem nenhuma integração externa. A idéia é simplificá -la e evitar a fluência do recurso.
Além disso, o pueue é considerado completo? Todos os recursos planejados foram adicionados e apenas pequenas melhorias, fixos de insetos e trabalho de manutenção regular serão mesclados.
Para o registro, os seguintes recursos não foram incluídos, pois estão fora do escopo:
pueued roteirizá-lo de qualquer maneira, dê uma olhada na biblioteca pueue-lib , que fornece pedidos de API adequados. No entanto, lembre -se de que pueued ainda deve ser um executor de tarefas minimalistas com o mínimo de lógica de agendamento possível.Parece haver a necessidade de algum projeto que satisfaça todos esses pontos mencionados acima, mas esse será o trabalho de outra ferramenta. Eu encorajo muito o puqueeeeee e adoraria ver os garfos se transformarem em outros projetos legais!
O SLURM é um sistema de gerenciamento e agendamento de cluster rico e amplamente usado. Se você estiver na necessidade de configurações complexas, como vários pools de trabalhadores ou nós distribuídos, o SLURM será muito mais adequado que o pueue.
Um processador paralelo robusto e robusto com Joblog e N-Retries baseados em texto. O GNU Parallel é capaz de escalar para paralelização multi-host e possui código complexo para ter uma integração profunda em diferentes ferramentas e conchas, além de outros recursos avançados. Pueue se diferencia do GNU paralelo, concentrando -se mais na visibilidade em muitos comandos diferentes de longa duração e criando um local central para que os comandos sejam armazenados, em vez do foco da GNU Parallel em Chunking uma tarefa específica.
O PM2 é uma ferramenta de gerenciamento de processos, cujo foco é mais no gerenciamento de tarefas recorrentes e de vida longa. Parece ser bastante maduro e tem uma interface rica.
Um sistema de fila de emprego muito leve que não requer configuração, manutenção, supervisão ou processos de longa duração.
Link para o projeto
O Task Spooler é um sistema de lote Unix, onde as tarefas spoolam executam uma após a outra.
Links para o Ubuntu Manpage e um garfo no Github. O site original parece estar inativo.
Solicitações de recursos e solicitações de tração são muito apreciadas e bem -vindas!
De qualquer forma, por favor, fale comigo um pouco sobre suas idéias antes de começar a hackear! É sempre bom saber no que você está trabalhando e eu posso ter algumas sugestões ou dicas :)
Dependendo do tipo de sua contribuição, você deve se ramificar do ramo main . Pueue é maduro o suficiente para não precisar mais de uma filial development e todas as alterações são coletadas lá antes que uma nova versão seja pressionada. Os hotfixes urgentes podem ser implantados em uma filial separada, mas isso será decidido caso a caso.
Há também o guia de arquitetura, que deve fornecer uma breve visão geral e introdução ao projeto.
Copyright © 2019 Arne Beer (@nukesor)