12
मैं सेलेरी के साथ एसिंक्रोनस कार्य को कॉल करने के लिए मॉडल की बचत() विधि को ओवरराइड कर रहा हूं। यह कार्य मॉडल को भी बचाता है, और इसलिए मैं एक पुनरावर्ती स्थिति के साथ समाप्त होता हूं जहां सेलेरी कार्य को बार-बार कहा जाता है। कोड यह रहा:Django मॉडल फ़ील्ड्स को अद्यतन करने के लिए अजवाइन का उपयोग करते समय रिकर्सिव सेव() से बचें
मॉडल की विधि को बचाने:
def save(self, *args, **kwargs):
super(Route, self).save(*args, **kwargs)
from .tasks import get_elevation_data
get_elevation_data.delay(self)
get_elevation_data कार्य:
from celery.decorators import task
@task()
def get_elevation_data(route):
...
route.elevation_data = results
route.save()
मैं इस प्रत्यावर्तन कैसे बच सकते हैं?