Los tiempos de inicio del lanzamiento parecen retrasarse cada vez más.

Los tiempos de inicio del lanzamiento parecen retrasarse cada vez más.

Soy nuevo en Launchd, por lo que es posible que haya hecho algo incorrecto. Tengo un script que pretendo ejecutar cada hora. Con ese fin, creé un archivo plist con la siguiente entrada para que eso suceda:

<key>StartInterval</key>
<integer>3600</integer>

Se ejecuta aproximadamente cada hora, pero actúa como si el intervalo de tiempo fuera desde la hora completa de una instancia hasta la hora de inicio de la siguiente. Digo esto porque las horas de inicio son cada vez más tardías. Aquí hay un listado:

Aug 30 21:00:43 2016 2016083021 
Aug 30 22:00:45 2016 2016083022 
Aug 30 23:00:49 2016 2016083023
Aug 31 00:00:51 2016 2016083100
Aug 31 01:00:53 2016 2016083101
Aug 31 02:00:54 2016 2016083102
Aug 31 03:00:56 2016 2016083103 
Aug 31 04:00:57 2016 2016083104
Aug 31 05:00:58 2016 2016083105
Aug 31 06:01:00 2016 2016083106
Aug 31 07:01:02 2016 2016083107
Aug 31 08:01:06 2016 2016083108
Aug 31 09:01:11 2016 2016083109
Aug 31 10:01:17 2016 2016083110
Aug 31 11:01:22 2016 2016083111
Aug 31 12:01:27 2016 2016083112
Aug 31 13:01:32 2016 2016083113
Aug 31 14:01:38 2016 2016083114
Aug 31 15:01:43 2016 2016083115
Aug 31 16:01:51 2016 2016083116
Aug 31 17:01:56 2016 2016083117
Aug 31 18:02:02 2016 2016083118

¿Es esta una característica conocida de launchd? ¿Debería configurar mi intervalo de inicio de manera diferente?

Respuesta1

StartIntervalse repite aproximadamente en el número de segundos indicado. StartCalendarIntervalse repite a la hora del calendario/reloj especificada.

Esto es lo que terminé usando:

<key>StartCalendarInterval</key>
<array>
    <dict>
    <key>Minute</key>
    <integer>0</integer>
    </dict>
</array>

Todavía hay un retraso aleatorio, pero es después del tiempo especificado y no después del período transcurrido, por lo que no se retrasa gradualmente.

Sep  1 21:00:08 2016 2016090121
Sep  1 22:00:04 2016 2016090122
Sep  1 23:00:04 2016 2016090123
Sep  2 00:00:02 2016 2016090200
Sep  2 01:00:06 2016 2016090201
Sep  2 02:00:08 2016 2016090202
Sep  2 03:00:02 2016 2016090203
Sep  2 04:00:06 2016 2016090204
Sep  2 05:00:02 2016 2016090205
Sep  2 06:00:02 2016 2016090206
Sep  2 07:00:07 2016 2016090207
Sep  2 08:00:03 2016 2016090208
Sep  2 09:00:04 2016 2016090209
Sep  2 10:00:09 2016 2016090210
Sep  2 11:00:11 2016 2016090211
Sep  2 12:00:11 2016 2016090212
Sep  2 13:00:08 2016 2016090213
Sep  2 14:00:10 2016 2016090214
Sep  2 15:00:10 2016 2016090215
Sep  2 16:00:11 2016 2016090216
Sep  2 17:00:11 2016 2016090217
Sep  2 18:00:14 2016 2016090218
Sep  2 19:00:09 2016 2016090219
Sep  2 20:00:07 2016 2016090220

información relacionada