Eu tento evitar adicionar dependências ao RQ, preferindo mantê-lo leve. No entanto, podemos suportar if adicionando um argumento serializer
. Assim, por exemplo:
queue = Queue('default', connection=redis, serializer=DillSerializer)
Este objeto Serializer
teria os métodos serialize
e deserialize
que serão chamados ao escrever/ler no Redis.
O que você acha?
Você está certo – provavelmente é melhor fornecer isso como um argumento.
No entanto, seria bom apenas usar as funções convencionais de nível de módulo dumps
/ loads
. Dessa forma, você pode simplesmente passar o próprio módulo sem código extra:
import dill
queue = Queue('default', connection=redis, serializer=dill)
Parece uma boa ideia. Por favor, sinta-se à vontade para abrir um PR para isso :).
o marshmallow é suportado para os rq redis-configs ou params job/worker?
houve algum progresso nisso? Se não, por onde se deve começar? Basta procurar chamadas para pickle e usar o serializador configurado?
Não houve nenhuma atividade em torno deste problema. A maioria das mudanças deve ocorrer em torno de job.restore() e job.to_dict() .
Além disso, os objetos Queue
e Worker
também devem saber qual serializador eles devem usar.
Abriu o nº 1141 como uma abordagem potencial para isso.
Comentários muito úteis
Você está certo – provavelmente é melhor fornecer isso como um argumento.
No entanto, seria bom apenas usar as funções convencionais de nível de módulo
dumps
/loads
. Dessa forma, você pode simplesmente passar o próprio módulo sem código extra: