Search
Close this search box.
Python schedule: execute códigos com hora marcada
Python schedule

Posts Relacionados:

Precisa executar códigos com regularidade? Python schedule é uma biblioteca para agendamento de execução de códigos com sintaxe amigável.

Receba nossa newsletter

biblioteca Python schedule

Frequentemente nos deparamos com situações em que precisamos executar códigos Python com regularidade e em horários precisos. A realização de web scraping é um bom exemplo disso.

Python schedule é uma biblioteca ideal para agendar a execução de códigos no calendário humano. Através de seu uso, é possível executar funções Python (ou qualquer outro elemento Python chamável) periodicamente usando uma sintaxe amigável.

Como usar Python Schedule?

A biblioteca precisa ser instalada:

				
					# com pip
pip install schedule

# com conda
conda install conda-forge::schedule
				
			

Para usá-la num código Python, faça a importação da biblioteca e defina as funções que deseja executar normalmente. Veja um exemplo:

				
					import schedule 

def minha_funcao():
    print('Oi na hora certa!')

				
			

Após definir suas funções, será preciso adicionar um comando equivalente ao mostrado abaixo:

				
					schedule.every().minute.do(minha_funcao)
while True:
    schedule.run_pending()
				
			

Nesse exemplo, uma função chamada minha_funcao foi programada para rodar a cada minuto. Isso é feito passando a função como argumento da função do da biblioteca schedule. Ela atua como um decorador.

Intervalos Personalizados

Com a biblioteca Python schedule, não é necessário usar sempre notação em minutos nem especificar 1 minuto como intervalo. Ela aceita várias formas de especificações temporais. Por exemplo, para rodar uma função a cada 15 minutos, o comando pode ser escrito como:

				
					
schedule.every(15).minutes.do(minha_funcao)
while True:
    schedule.run_pending()
				
			

Já para executar uma função uma vez a cada hora:

				
					schedule.every().hour.do(minha_funcao)
while True:
    schedule.run_pending()
				
			

Quando precisamos executar um código uma vez por dia em um horário preciso, o comando pode ser escrito como o exemplo abaixo (modifique o exemplo com as suas opções):

				
					schedule.every().day.at("10:30").do(minha_funcao) # roda todo dia às 10:30
while True:
    schedule.run_pending()
				
			

Já para os casos em que um código precisa ser executado em um dia da semana e com horário preciso, o comando pode ser escrito assim (mude as especificações de acordo com suas necessidades):

				
					schedule.every().wednesday.at("13:15").do(minha_funcao) # roda toda quarta-feira às 13:15
while True:
    schedule.run_pending()
				
			

Também é possível especificar o fuso horário que deve ser considerado.

				
					pip install pytz # comando para instalar pytz (precisa instalar antes de usar)

from pytz import timezone
schedule.every().friday.at("12:42", timezone("Africa/Lagos")).do(minha_funcao) # exemplo com fuso horário
while True:
    schedule.run_pending()
				
			

Python Schedule com Argumentos

Nos exemplos anteriores, as funções não possuíam argumentos. Em muitos casos, elas possuem. Evidentemente, a biblioteca schedule lida sem problemas com esse cenário. Veja como passar argumentos no exemplo abaixo:

				
					def minha_funcao(nome):
    print(f'Oi na hora certa para {nome}!')

schedule.every().minute.do(minha_funcao, nome="Ana") # exemplo com argumento
while True:
    schedule.run_pending()
				
			

Para conhecer mais sobre a biblioteca, ver outros detalhes sobre notação e opções, confira a documentação oficial.

Imagem com IA Generativa – Dia 105

IA generativa img 105

Arte com IA generativa: imagem do dia

Todos os dias, postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial