मैं एक django वेबसर्वर विकसित कर रहा हूं जिस पर एक और मशीन (ज्ञात आईपी के साथ) मेरे वेबसर्वर पर एक स्प्रेडशीट अपलोड कर सकती है। के बाद स्प्रेडशीट अपडेट कर दी गई है, मैं स्प्रेडशीट पर कुछ प्रसंस्करण/सत्यापन/विश्लेषण ट्रिगर करना चाहता हूं (जो 5 मिनट ले सकता है --- दूसरे सर्वर के लिए प्रतिक्रिया के लिए उचित रूप से प्रतीक्षा करने के लिए बहुत लंबा है) और फिर दूसरा भेजें मशीन (एक ज्ञात आईपी के साथ) एक HttpResponse इंगित करता है कि डेटा प्रोसेसिंग समाप्त हो गया है।django व्यू से HttpResponse लौटने के बाद ट्रिगर फ़ंक्शन
मुझे लगता है कि आप एक HttpResponse
लौटने के बाद processing.data()
ऐसा नहीं कर सकते, लेकिन कार्यात्मक मैं कोड है कि कुछ इस तरह दिखता हैं:
# processing.py
def spreadsheet(*args, **kwargs):
print "[robot voice] processing spreadsheet........."
views.finished_processing_spreadsheet()
# views.py
def upload_spreadsheet(request):
print "save the spreadsheet somewhere"
return HttpResponse("started processing spreadsheet")
processing.data()
def finished_processing_spreadsheet():
print "send good news to other server (with known IP)"
मुझे पता है कि व्यक्तिगत रूप से प्रत्येक कार्य में लिखने के लिए है, लेकिन मैं प्रभावी ढंग से कैसे कर सकते processing.data()
views.upload_spreadsheet
पर एक प्रतिक्रिया वापस कर दी है?
मैंने django's request_finished
signaling framework का उपयोग करने का प्रयास किया लेकिन यह HttpResponse
लौटने के बाद processing.spreadsheet()
विधि को ट्रिगर नहीं करता है। मैंने एक ही समस्या के साथ views.upload_spreadsheet
पर सजावट का उपयोग करने की कोशिश की।
मेरे पास एक स्याही है कि middleware या संभवतः custom class-based view लिखने के साथ ऐसा कुछ हो सकता है, जिसमें से मुझे कोई अनुभव नहीं है, इसलिए मैंने सोचा कि मैं कुछ मदद की तलाश में ब्रह्मांड को प्रश्न पूछूंगा।
आपकी मदद के लिए धन्यवाद!
यह समझाने के लिए धन्यवाद कि यह आवश्यक क्यों है, क्रिस्टोफ़। आपके और जेपीआईसी के स्पष्टीकरण के आधार पर, मुझे लगता है कि मुझे थोड़ा और नींद आने के बाद सेलेरी की जांच होगी। – dino