Estoy haciendo esto con redis de la siguiente manera:
Tenemos clientes que pueden programar el lanzamiento de parte de su contenido. Almacenamos el lanzamiento en nuestra base de datos con la hora a la que debe ejecutarse.
Luego usamos celery beat para realizar una tarea periódica (cada hora o lo que le convenga) que verifica nuestra tabla de lanzamientos para los lanzamientos que están programados dentro del próximo período (otra vez por hora o lo que le convenga). si se encuentra alguno, programamos una tarea para ellos con apio. Esto nos permite tener una ETA corta.