Portanto, teremos esse trabalho executado a partir do cron duas vezes por hora, entre 7h00 e 17h00. Portanto, a entrada cron é algo como: 00,30 7-17 * * *
Isso basicamente significa que o trabalho será executado até 20 vezes por dia. No procedimento armazenado, o número de execuções restantes faz parte de algum cálculo. Então:
At 7:00am, there are 20 executions remaining
At 7:30am, there are 19 executions remaining
At 8:00am, there are 18 executions remaining
At 8:30am, there are 17 executions remaining
E assim por diante. Como posso determinar o número de execuções restantes, com base apenas no tempo? Ou seja, não queremos armazenar alguma variável ou contador em algum lugar no número de execuções restantes. E, digamos que a execução seja perdida, talvez alguns problemas de processamento, então tudo bem, foi perdido.
Se pudermos calcular o número de execuções restantes dinamicamente no código, então ele será autossuficiente e não precisará ser mantido, etc., mesmo se pausarmos o cron, quando ele iniciar novamente, ele apenas fará seu cálculo e continuará.
Qualquer ideia seria ótima, já que ainda não temos nenhum algoritmo.
Obrigado!
Existem várias maneiras de calcular isso. Aqui está uma, gerando um calendário de execuções e contando aquelas ainda no futuro: