Tengo una aplicación de software que utiliza una cola y múltiples procesadores para procesar esos trabajos. Los trabajos se reejecutan a diario para los clientes, pero también tenemos nuevos clientes que se inscriben regularmente.
El problema es que los clientes generalmente se inscriben en horario de oficina, y la repetición diaria de los trabajos simplemente programa el trabajo para que se ejecute a la misma hora todos los días. Esto significa que hemos creado picos de trabajo bastante grandes durante el día, con muy pocos trabajos que se ejecutan durante la noche.
Me gustaría igualar los picos en esta cola de trabajos, pero también quiero minimizar la distancia que se desplaza cada trabajo individual desde su franja horaria original. En otras palabras, prefiero mover 100 trabajos en 5 minutos cada uno que mover 1 trabajo en una hora para lograr una distribución uniforme de los trabajos en todo el período de 24 horas.