A Expressão 0 9 * * 1-5
A expressão cron 0 9 * * 1-5 dispara às 9:00 AM, de segunda a sexta. Detalhando os cinco campos: minuto (0), hora (9), dia do mês (*), mês (*), dia da semana (1-5). O * em dia do mês e mês significa “qualquer dia de qualquer mês,” mas a restrição de dia da semana substitui isso.
Numeração do Dia da Semana
| Número | Dia |
|---|---|
| 0 | Domingo |
| 1 | Segunda |
| 2 | Terça |
| 3 | Quarta |
| 4 | Quinta |
| 5 | Sexta |
| 6 | Sábado |
| 7 | Domingo (alias para 0) |
Aliases de Dia Nomeados
0 9 * * SEG-SEX # equivalente a 0 9 * * 1-5
0 9 * * SEG,QUA,SEX # Segunda, Quarta, Sexta apenas
0 9 * * TER,QUI # Terça e Quinta
Um Casó Extremo Importante: Interação dom e dow
Se tanto o campo de dia do mês quanto o de dia da semana forem definidos com algo diferente de *, o trabalho executa na união das duas restrições, não na interseção.
0 9 15 * 1-5 # executa no dia 15 do mês OU qualquer segunda a sexta
Em 0 9 * * 1-5, o dia do mês é *, então este casó extremo não se aplica. O trabalho executa estritamente em dias úteis.
Padrões de Agendamento de Horário Comercial
0 9 * * 1-5 # dispara às 9:00 AM dias úteis
0 9,17 * * 1-5 # 9 AM e 5 PM, apenas dias úteis
*/15 9-17 * * 1-5 # a cada 15 min, 9 AM às 5 PM, dias úteis
0 8 * * 1-5 # 8 AM dias úteis
Verificando Próximos Horários de Execução
from croniter import croniter
from datetime import datetime
cron = croniter("0 9 * * 1-5", datetime.now())
for _ in range(5):
print(cron.get_next(datetime))