Scheduling y recurrencia
Una DroneMission puede enviarse a sí misma: una vez, en un momento
futuro, o con recurrencia. El scheduler corre contra los campos
scheduledAt y recurrence y lleva la misión por el mismo pipeline de
subida → registro → preparación que usa un envío manual.
Una sola vez (scheduledAt)
En la sección Schedule del planificador elige Una vez y
establece fecha/hora. El documento de la misión obtiene scheduledAt
(epoch ms) y status: 'scheduled'. En el momento programado:
- El scheduler llama a
DjiMissionDispatcherService.dispatchToDockconscheduledTime = scheduledAt, que se pasa a la tarea de vuelo DJI. - El estado de la misión progresa
scheduled→dji_dispatched→wayline_uploading→wayline_registered→dji_preparing→dji_ready→dji_executing→dji_completed. - Las puertas de meteorología y los chequeos de disponibilidad de
dock corren justo antes del envío. Un fallo duro tras el
presupuesto configurado de reintentos establece el estado a
weather_holdoschedule_cancelled.
Recurrente (recurrence)
Elige Recurrente para construir un DroneMissionRecurrence:
freq—daily,weekly, omonthly.timeOfDay— cadenaHH:mm, 24 horas, zona horaria local.daysOfWeek— paraweekly: array de 0-6 (Dom..Sáb). Ignorado en otros casos.dayOfMonth— paramonthly: 1-31. Ignorado en otros casos.endsAt— epoch ms opcional. Sin establecer = indefinido.enabled— toggle sin eliminar la regla.
Cada ocurrencia genera una nueva instancia de misión clonada del
original, para que retengas un historial navegable de cada vuelo. La
misión-plantilla de recurrencia original rastrea lastDispatchedAt y
nextDispatchAt conforme el scheduler avanza.
Flujo de estado para una misión recurrente:
scheduled— armada, esperandonextDispatchAt.schedule_paused— pausa desde el planificador sin perder la regla.schedule_completed—endsAtalcanzado.schedule_cancelled— cancelada por el usuario.
Auto-cancelación por fallo de dependencia
Si un prerrequisito falla en el momento del envío — dock offline,
aeronave no acoplada, registro de wayline rechazado, puerta de
meteorología roja tras reintentos — la ocurrencia transiciona a
dji_failed y la siguiente ocurrencia se encola como normal. La
recurrencia padre no se mata; usa Pausar scheduling en el
planificador para detener eso.
Retenciones por meteorología
Los chequeos de meteorología corren dentro de la fase pre-envío. Un
estado weather_hold significa que el scheduler está reintentando
con backoff y la misión se enviará tan pronto como las condiciones
se aclaren, hasta el techo de reintentos; tras eso falla la
ocurrencia y avanza.
Edición
Las misiones programadas y recurrentes son totalmente editables
hasta que empiece la siguiente ocurrencia. Cambiar scheduledAt o
la regla de recurrencia reprograma la siguiente ejecución.
Ver próximas ejecuciones
- La lista de misiones de la operación muestra la marca de tiempo de la siguiente ejecución para cada plan recurrente.
- El tile de mapa de operaciones traza el preview de la siguiente wayline cuando la misión está seleccionada.