विषय पर बढ़ें

बैकग्राउंड कार्य

te में इन-प्रोसेस बैकग्राउंड कार्यों के लिए BackgroundTask क्लास है।

एक पृष्ठभूमि कार्य प्रतिक्रिया से जुड़ा होना चाहिए और प्रतिक्रिया भेजे जाने के बाद ही चलना चाहिए।

पृष्ठभूमि कार्य

प्रतिक्रिया में एकल पृष्ठभूमि कार्य जोड़ने के लिए उपयोग किया जाता है।

हस्ताक्षर: BackgroundTask(func, *args, **kwargs)

te.से आयात
से te.आयात JSONआयात
स्टारलेट से। रूटिंग आयात मार्ग
te.से पृष्ठभूमि आयात


...

Ac def साइनअप (अनुरोध):
    डेटा = अनुरोध का इंतजार करें। json ()
    उपयोगकर्ता नाम = डेटा ['उपयोगकर्ता नाम']
    ईमेल = डेटा ['ईमेल']
    टास्क = बैकग्राउंडटास्क (send _ welcome _ email, to _ पता = email)
    संदेश = {'status': 'Signup successful'}
    JSONवापसी (संदेश, पृष्ठभूमि = कार्य)

Ac def send_welcome_email (to_address):
    ...


मार्ग = [
    ...
    रूट ('/ उपयोगकर्ता / साइनअप', एंडपॉइंट = साइनअप, तरीके = ['POST'])
]

ऐप = स्टारलेट (routes = routes)

पृष्ठभूमि कार्य

प्रतिक्रिया में कई पृष्ठभूमि कार्यों को जोड़ने के लिए उपयोग किया जाता है।

हस्ताक्षर: BackgroundTasks(tasks=[])

te.से आयात
से te.आयात JSONआयात
te.से पृष्ठभूमि आयात करता है

Ac def साइनअप (अनुरोध):
    डेटा = अनुरोध का इंतजार करें। json ()
    उपयोगकर्ता नाम = डेटा ['उपयोगकर्ता नाम']
    ईमेल = डेटा ['ईमेल']
    कार्य = पृष्ठभूमि कार्य ()
    कार्य। जोड़ें _ कार्य (send _ welcome _ email, to _ पता = email)
    कार्य (send_admin_notification, उपयोगकर्ता नाम = उपयोगकर्ता नाम)
    संदेश = {'status': 'Signup successful'}
    JSONवापसी (संदेश, पृष्ठभूमि = कार्य)

Ac def send_welcome_email (to_address):
    ...

Ac def send_admin_notification (username):
    ...

मार्ग = [
    रूट ('/ उपयोगकर्ता / साइनअप', एंडपॉइंट = साइनअप, तरीके = ['POST'])
]

ऐप = स्टारलेट (routes = routes)

!!! महत्वपूर्ण, कार्यों को अनुक्रम में निष्पादित किया जाता है। यदि कार्यों में से एक अपवाद फेंकता है, तो बाद के कार्यों को निष्पादित करने का कोई मौका नहीं होगा।