COMO AGENDAR UM SCRIPT PYTHON EM UM MAC
Em um artigo anterior, falamos sobre como executar Python a partir do Windows Task Scheduler . Esta postagem irá cobrir como agendar tarefas Python em um sistema operacional Mac, bem como dar uma visão geral do pacote de agendamento .
Usando crontab no Mac
As tarefas Python podem ser agendadas no Mac usando crontab . Para fazer isso, primeiro abra o Terminal. Então, precisamos modificar o arquivo crontab. Podemos fazer isso digitando crontab -e .
Isso abrirá o crontab no editor padrão, que normalmente é o vim . Você pode alterar o editor adicionando o nome do editor antes de nosso comando – por exemplo, para modificar o arquivo crontab usando o nano , podemos executar nano crontab -e (seguido de enter ).
Em seguida, precisamos adicionar uma linha descrevendo a frequência do cronograma de quantas vezes queremos que o script Python seja executado. Inserimos isso na ordem: minuto, hora, dia do mês, mês e dia da semana. Para deixar um desses não especificado, coloque um asterisco (*) no intervalo de data / hora.
Exemplo 1: execute o script no primeiro dia de cada mês às 2:03.
3 2 1 * * python /path/to/test_script.py
Exemplo 2: execute o script a cada minuto
* * * * * python /path/to/test_script.py
Exemplo 3: execute o script a cada hora no 30º minuto
30 * * * * python /path/to/test_script.py
Depois de agendar seu script Python, você precisa salvar o arquivo crontab. Se estiver usando o nano , você pode fazer isso digitando ctrl + 0 seguido de ctrl + x para sair. No vim , você pode salvar e sair pressionando esc e digitando : w , seguido de enter .
Lidando com problemas potenciais
Um problema que pode surgir tem a ver com as permissões de “acesso total ao disco”. Isso pode acontecer se você estiver usando uma versão recente do macOS Mojave. Para obter detalhes sobre como corrigir esse problema, clique aqui. (Inglês)
Outro problema comum que ocorre é com nomes de caminho. É sempre bom verificar isso – por exemplo, se você tiver várias instalações do Python instaladas, você desejará apontar para a instalação correta necessária para o seu trabalho agendado.
O pacote de programação
Além de usar crontab para executar scripts Python, também podemos usar o cronograma biblioteca para lidar com tarefas Python agendamento. Este pacote é especialmente útil para agendar funções específicas em aplicativos Python. Ele também funciona em diferentes sistemas operacionais. Vamos começar com o pacote de programação instalando-o com pip:
pip install schedule
Começaremos criando uma função simples chamada test que simplesmente imprime uma mensagem. Então, podemos usar o agendamento para agendar uma tarefa executando esta função a cada 10 segundos. Para iniciar esta tarefa, podemos usar o método run_pending , que será executado dentro de um loop while.
import schedule
def test():
print("Test this out!")
schedule.every(10).seconds.do(test)
while True:
schedule.run_pending()
A recorrência da tarefa pode ser ajustada mudando “segundos” para “minutos” ou “horas” como abaixo.
# every 10 minutes
schedule.every(10).minutes.do(test)
# every 10 hours
schedule.every(10).hours.do(test)
Da mesma forma, podemos alterar o comprimento da unidade de tempo de 10 para qualquer outro número.
# every 1 minute
schedule.every(1).minutes.do(test)
# every 30 seconds
schedule.every(30).seconds.do(test)
Listagem e limpeza de tarefas
Você pode imprimir uma lista das tarefas programadas executando schedule.jobs :
schedule.jobs
Para limpar todas as tarefas do agendador, podemos executar a seguinte linha de código:
schedule.clear()
Agendar tarefas Python a partir do Agendador de Tarefas do Windows
Se você estiver executando no Windows, também pode agendar tarefas por meio do Agendador de Tarefas integrado. Saiba mais sobre como fazer isso clicando aqui