L'oggetto di raccolta Pymongo non riesce quando cerco di eseguire i miei compiti con il sedano. Immagino che non possa serializzarlo. Cosa dovrei fare? Dal modo in cui ho provato sottaceto, ma non mi aiuta.oggetto di raccolta pymongo serializzazione del metodo __getnewargs__
PS: Non voglio importare il db globale in questo modulo.
L'oggetto "Raccolta" non è richiamabile. Se intendevi chiamare il metodo "getnewargs" ....
Il codice di esempio è riportato di seguito. module.py
from celery.contrib.methods import task_method
class Some_Class(object):
"""docstring for Some_Class"""
def __init__(self, db):
super(Some_Class, self).__init__()
self.db = db # This object causes 'Collection' object is not callable
#db is a pymongo collection object from db.py
@app.task(filter=task_method) # Celery task
def add(self):
"""
db.insert({'some_key':'some_value'})
"""
return 3
db.py
from pymongo import MongoClient
db = MongoClient()['test']['collection']
Se si sta esaminando cosa porta a un errore nella serializzabilità degli oggetti, è possibile provare i metodi nel modulo 'dill.detect'. https://github.com/uqfoundation –