Estoy tratando de poner algún objeto de python en su mayoría json serializable excepto datetime.datetime en rabbitmq cola y así el uso de la salmuera para serializar.

celery_config de archivo:

CELERY_TASK_SERIALIZER = 'pickle'
CELERY_RESULT_SERIALIZER = 'pickle'

Es lanzar una excepción diciendo:

 File "/usr/local/lib/python2.7/dist-packages/kombu/serialization.py", line 174, in loads
    raise self._for_untrusted_content(content_type, 'untrusted')
ContentDisallowed: Refusing to deserialize untrusted content of type pickle (application/x-python-serialize)

En este enlace
sugiere hago la firma de mensajes acerca de lo que no tengo idea.

Puede alguien por favor me guía a través de ¿cómo puedo resolverlo?

  • duplicado de stackoverflow.com/questions/6628016/… ?
  • Hola Andy, he comprobado con la solución anterior, que no hace ninguna diferencia. Por desgracia soy incapaz de comentar y preguntar mis dudas sobre él, ya que soy nuevo en la pila. Btw respuesta sugiere poner serializador como json que no funciona en mi caso.
  • genial!!! (o no, dependiendo de cómo ver las cosas), consejo superior de preguntar aquí: decir las cosas que he probado y lo que pasó (por ejemplo, este no funciona)! +1 por intentarlo!
  • Gracias por la punta de Andy.Va a hacer la próxima vez.Incluso he intentado un par de cosas como la creación de claves privadas y la generación de certificados ssl que no funciona tampoco.Yo mal se ha quedado en esto.
InformationsquelleAutor andros1337 | 2014-12-20

1 Comentario

  1. 24

    Has probado, este:

    CELERY_ACCEPT_CONTENT = ['pickle']

    Como se indica en este enlace ( http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-accept_content)
    este establecimiento acepta una lista de serializador de nombres y el contenido-tipos, por lo que podría ser de color blanco-lista de el serializador o el contenido-tipos de esperar a serializar.

    Para hacer el anterior, o el uso de SSL de la firma de mensajes… que consiste, básicamente, en la construcción de un ssh-par de claves, y la habilitación de celery a usar sus claves para obtener una conexión segura.

    Puede activar la firma de mensajes, mediante el registro de su «CLAVE» y «CERTIFICADO» con:

    CELERY_SECURITY_KEY = '/etc/ssl/private/worker.key'
    CELERY_SECURITY_CERTIFICATE = '/etc/ssl/certs/worker.pem'
    CELERY_SECURITY_CERT_STORE = '/etc/ssl/certs/*.pem'
    from celery.security import setup_security
    setup_security()

    Cuanto a lo que eso significa… y cómo funciona, consulte:
    http://www.tldp.org/HOWTO/SSL-Certificates-HOWTO/x64.html

    También, de cómo generar claves (y permitir inicios de sesión sin contraseña segura), ver:
    https://help.github.com/articles/generating-ssh-keys/
    o http://mah.everybody.org/docs/ssh para obtener más general de los vínculos que se hace referencia en el mismo.

Dejar respuesta

Please enter your comment!
Please enter your name here