Quão preciso é o cron?

4

Estou tentando configurar um script python para consultar um DB para todas as atualizações nos últimos 5 minutos. Dado o número de atualizações, ele deve ser o mais preciso possível (nossos registros são timestampados para o microssegundo). Há duas maneiras que estou considerando abordar isso - primeiro é usar o cron. No entanto, isso depende do cron ser preciso o suficiente para sempre rodar no intervalo exato mesmo toda vez que for executado. Portanto, se o primeiro tempo de execução for 00: 00: 00.123456789, ele precisará ser executado novamente às 00: 05: 00.123456789. Caso contrário, existe a possibilidade de registros serem perdidos nas lacunas entre os dois.

A outra opção é encontrar uma maneira de "encaixar" a consulta SQL no minuto mais próximo, arredondado para baixo. Mas se eu puder usar o cron, prefiro fazer isso para manter as coisas o mais simples possível.

    
por Matthew 23.05.2011 / 14:54

1 resposta

3

Eu tive scripts cron que, por algum motivo ou outro, precisavam produzir o tempo e eu os vi algumas vezes atrasados um pouco (sempre rastreados até o segundo). Eu não sei se isso é devido ao Cron ou devido às variações de quanto tempo leva para carregar e executar o script. Eu imagino que é um pouco dos dois. De qualquer forma, contando com a consulta sql para executar exatamente no mesmo microssegundo, não vai funcionar.

Você pode fazer com que seu script python obtenha a hora atual e, em seguida, arredonde o intervalo de 5 minutos mais próximo. Por exemplo, se recuperar a hora atual como 00: 05: 03.123, basta soltar os segundos e consultar com base em 00:05:00 e voltar para 00:00:00.

Ou você pode registrar o registro de data e hora do último registro e, em seguida, a consulta da próxima vez a partir do horário atual de volta para esse registro de data e hora.

Editar: removeu a primeira sentença do segundo parágrafo - não fazia muito sentido lá.

    
por 23.05.2011 / 15:12