Saltearse al contenido

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:

  1. El scheduler llama a DjiMissionDispatcherService.dispatchToDock con scheduledTime = scheduledAt, que se pasa a la tarea de vuelo DJI.
  2. El estado de la misión progresa scheduleddji_dispatchedwayline_uploadingwayline_registereddji_preparingdji_readydji_executingdji_completed.
  3. 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_hold o schedule_cancelled.

Recurrente (recurrence)

Elige Recurrente para construir un DroneMissionRecurrence:

  • freqdaily, weekly, o monthly.
  • timeOfDay — cadena HH:mm, 24 horas, zona horaria local.
  • daysOfWeek — para weekly: array de 0-6 (Dom..Sáb). Ignorado en otros casos.
  • dayOfMonth — para monthly: 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, esperando nextDispatchAt.
  • schedule_paused — pausa desde el planificador sin perder la regla.
  • schedule_completedendsAt alcanzado.
  • 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.

Relacionado