É possível executar fluxos de trabalho de curta duração como tarefas. O artigo Como executar tarefas explica como executar as tarefas em apps.
Também é possível programar a execução recorrente de tarefas com o formato unix-cron. Com as tarefas programadas, você envia primeiro um app que executa a tarefa, como você faz com uma tarefa não programada. Depois cria um job para programar a tarefa.
É possível programar a execução da tarefa várias vezes ao dia ou em determinados dias ou meses.
Enviar um app para executar tarefas programadas
Clone o repositório do test-app:
git clone https://github.com/cloudfoundry-samples/test-app test-appcd test-appEnvie o app.
Envie o app com o comando
kf push APP_NAME --task. A flag--taskindica que o app deve ser usado para executar tarefas. Portanto, o app não terá rotas criadas nem será implantado como um aplicativo de longa execução.kf push test-app --taskVerifique que nenhuma instância ou rota do app foi criada listando o app:
kf appsO app não foi iniciado e não tem URLs.
Listing Apps in Space: test-space Name Instances Memory Disk CPU URLs test-app stopped 1Gi 1Gi 100m <nil>
Criar um job
Para executar uma tarefa de modo programado, crie primeiro um job que a descreva.
kf create-job test-app test-job "printenv"O job começa como suspenso ou não programado e não cria tarefas até que seja executado manualmente por kf run-job ou programado por kf schedule-task.
Como executar manualmente
Assim como as tarefas, é possível executar jobs de modo ad hoc com o comando kf run-task. Essa opção
é útil para testar o job antes de programar ou executar, conforme necessário, além
da programação.
kf run-job test-jobEsse comando executa imediatamente a tarefa definida pelo job apenas uma vez.
Como programar um job
Para programar a execução do job, é preciso usar uma programação unix-cron no comando kf schedule-job:
kf schedule-job test-job "* * * * *"Esse comando aciona o job para criar tarefas automaticamente segundo a programação especificada. Neste exemplo, uma tarefa é executada a cada minuto.
Para mudar a programação do job, execute kf schedule-task com a nova programação.
Os jobs do Kf só podem ter uma única programação cron. Essa é a diferença
do PCF Scheduler, que permite várias programações para um único job.
Se você precisar de mais de uma programação cron, use mais de um job.
Como gerenciar jobs e programações
Para conferir todos os jobs do Space atual, agendados ou não, use o comando kf jobs:
$ kf jobs
Listing Jobs in Space: test space
Name Schedule Suspend LastSchedule Age Ready Reason
test-job * * * * * <nil> 16s 2m True <nil>
unscheduled-job 0 0 30 2 * true 16s 2m True <nil>
Para conferir apenas os jobs programados, use o comando kf job-schedules.
$ kf job-schedules
Listing job schedules in Space: test space
Name Schedule Suspend LastSchedule Age Ready Reason
test-job * * * * * <nil> 16s 2m True <nil>
O job unscheduled-job não aparece no resultado de kf job-schedules.
Como cancelar a programação de um job
Use o comando kf delete-job-schedule para interromper um job programado:
kf delete-job-schedule test-jobEsse comando suspende o job e impede que ele crie tarefas na programação anterior.
O job não é excluído e pode ser programado novamente por kf schedule-job para continuar a execução.
Excluir um job
Use o comando kf delete-job para excluir o job inteiro.
kf delete-job test-jobEsse comando exclui o job e todas as tarefas criadas por ele, tanto as execuções programadas como as manuais. Se ainda houver tarefas em execução, o comando vai excluí-las de modo forçado.
Se quiser impedir a parada das tarefas em execução, primeiro exclua a programação de jobs com o comando kf delete-job-schedule e aguarde a conclusão das tarefas. Depois use o comando kf delete-job para excluir o job.