Python: vuelva a intentar una tarea de apio fallida desde otra cola

Estoy publicando datos en un servicio web en Celery. A veces, los datos no se publican en el servicio web debido a que Internet está inactivo y la tarea se vuelve a intentar infinitas veces hasta que se publica. No es necesario volver a intentar la tarea porque la red estaba inactiva y, por lo tanto, no es necesario volver a intentarlo.

Pensé en una mejor solución, es decir, si una tarea falla tres veces (reintentando un mínimo de 3 veces), entonces se cambia a otra cola. Esta cola contiene una lista de todas las tareas fallidas. Ahora, cuando Internet está activo y los datos se publican en la red, es decir, la tarea se ha completado desde la cola normal, comienza a procesar las tareas de la cola que han fallado. Esto no desperdiciará la memoria de la CPU al volver a intentar la tarea una y otra vez.

Aquí está mi código: - En este momento, solo estoy volviendo a intentar la tarea nuevamente, pero dudo si esa será la forma correcta de hacerlo.

@shared_task(default_retry_delay = 1 * 60, max_retries = 10)
def post_data_to_web_service(data,url):

    try : 
        client = SoapClient(
                            location = url,
                            action = 'http://tempuri.org/IService_1_0/',
                            namespace = "http://tempuri.org/", 
                            soap_ns='soap', ns = False
                            )

        response= client.UpdateShipment(
                                        Weight = Decimal(data['Weight']), 
                                        Length = Decimal(data['Length']), 
                                        Height = Decimal(data['Height']), 
                                        Width =  Decimal(data['Width']) , 
                                        )

    except Exception, exc:
        raise post_data_to_web_service.retry(exc=exc) 

¿Cómo mantengo 2 colas simultáneamente e intento ejecutar tareas desde ambas colas?

Settings.py

BROKER_URL = 'redis://localhost:6379/0'
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'

Respuestas a la pregunta(1)

Su respuesta a la pregunta