"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso criar um agendamento semelhante ao Cron em Python?

Como posso criar um agendamento semelhante ao Cron em Python?

Publicado em 2024-12-22
Navegar:619

How Can I Create Cron-Like Scheduling in Python?

Agendamento tipo Cron com Python

A necessidade de agendar tarefas com base em expressões flexíveis surge em vários contextos. Embora o cron atenda a esse propósito em muitos ambientes, ele pode não estar universalmente disponível ou viável. Nesses casos, Python oferece várias opções para criar seus próprios agendadores semelhantes a cron.

Abordagem leve com a biblioteca de agendamento

Se soluções leves e puras baseadas em Python forem desejado, a biblioteca schedule oferece uma interface simples e expressiva. Ele permite agendar tarefas usando expressões do tipo cron:

import schedule
import time

def job():
    print("I'm working...")

schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)

while 1:
    schedule.run_pending()
    time.sleep(1)

Neste exemplo, a função job() será executada em intervalos regulares. Você pode modificar a expressão para definir programações complexas, como a cada 2 horas entre 9h e 17h durante a semana.

Abordagens alternativas

Se a biblioteca de programação não atender aos seus requisitos específicos, considere estas abordagens alternativas:

  • apscheduler: Uma biblioteca de agendamento mais abrangente com suporte para vários backends, incluindo threads locais e Celery.
  • crontab: Um pacote Python que emula o comando crontab, permitindo agendamento direto de comandos shell.
  • celery-beat : Um agendador que se integra à fila de tarefas distribuídas do Celery.

Lembre-se, ao definir seu próprio agendador, você precisará para lidar com o lançamento de funções Python em um thread separado para evitar o bloqueio do processo principal.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3