WCS: cola de asignación de tareas en RabbitMQ

WCS: cola de asignación de tareas en RabbitMQ Un diagrama de flujo de datos generado por Archify. 01 / Productores 02 / Publicación 03 / Colas RabbitMQ 04 / Consumidor 05 / Procesadores insertTask · WMS / UI generateTask · 01 / Productores · tarea nueva insertTask WMS / UI generateTask tarea nueva Liberar tarea · updateIsAllowAssignmentRgv · 01 / Productores · PLC · elevador · RGV Liberar tarea updateIsAllowAssignmentRgv PLC · elevador · RGV AssignTaskThread · por RGV · cada 3 s · 01 / Productores · si taskPrepareAssign AssignTaskThread por RGV · cada 3 s si taskPrepareAssign ReturnCallback · no enrutable: solo log · 03 / Colas RabbitMQ · sin DLQ ReturnCallback no enrutable: solo log sin DLQ ProducerService · sendMessageWithPriority · 02 / Publicación · default exchange ProducerService sendMessageWithPriority default exchange Cola por puerto · {puerto}{coord}{tipo}.queue · 03 / Colas RabbitMQ · IN / OUT Cola por puerto {puerto}{coord}{tipo}.queue IN / OUT Cola por piso · {almacén}-{z}floor.queue · 03 / Colas RabbitMQ · TRANSFER Cola por piso {almacén}-{z}floor.queue TRANSFER MyMessageListener · 1 consumidor/cola · prefetch 1 · 04 / Consumidor · pausa 2 s tras cada msg MyMessageListener 1 consumidor/cola · prefetch 1 pausa 2 s tras cada msg wcs_task · MySQL argentina · 04 / Consumidor · estado de tarea wcs_task MySQL argentina estado de tarea doInOrOutConsume · programme + limitRgvCount · 05 / Procesadores · → bindAvailableRgv doInOrOutConsume programme + limitRgvCount → bindAvailableRgv doConsume · aviso de orden por groupId · 05 / Procesadores · → bindAvailableRgv doConsume aviso de orden por groupId → bindAvailableRgv Notificaciones · WARN una vez por tarea · 05 / Procesadores · Set en memoria Notificaciones WARN una vez por tarea Set en memoria tarea nueva allowAssignmentRgv y sin RGV tarea liberada allow=true re-encolar tarea NEW/WAIT/AVOID desasignadas return sin cola mandatory taskId · prio IN / OUT taskId · prio TRANSFER QUEUE_ASSIGN antes de publicar entrega 1 a 1 entrega 1 a 1 nack requeue sin RGV / excepción nack requeue sin RGV / excepción TaskDB por id ya asignada: ack y descarta IN / OUT TRANSFER tip de orden no bloquea WARN sin RGV desasignar RGV processingRgvNo=null Leyenda datos primarios Replay / re-entrega almacén de datos flujo de datos