ctx.report_progress(...) केवल तभी एक सूचना भेजता है जब Client ने इस अनुरोध के लिए कोई प्रगति टोकन प्रदान किया हो। अगर Client ने प्रगति का अनुरोध नहीं किया, तो यह कुछ नहीं करता (no-op रहता है)।
मूलभूत उपयोग
पैरामीटर
| पैरामीटर | प्रकार | विवरण |
|---|---|---|
progress | int | float | वर्तमान प्रगति मान |
total | int | float | None | वैकल्पिक कुल मान; प्रतिशत-आधारित UI सक्षम करता है |
message | str | None | वैकल्पिक मानव-पठनीय स्टेटस संदेश |
उदाहरण: फ़ाइल डाउनलोड
उदाहरण: डेटा प्रोसेसिंग पाइपलाइन
उदाहरण: अनिर्धारित प्रगति
total छोड़ दें और समय-समय पर अपडेट भेजें:
युक्तियाँ
- असिंक्रोनस कार्य को प्राथमिकता दें: प्रगति अपडेट तब सबसे उपयोगी होते हैं जब आपका उपकरण I/O (
async def) कर रहा हो। यदि आप CPU‑गहन या ब्लॉकिंग कार्य करते हैं, तो उसे ऑफ़लोड करने पर विचार करें ताकि प्रगति सूचनाएँ चलते रहें। messageका संयम से उपयोग करें: “Downloading…”, “Transforming…”, “Saving…” जैसे छोटे संदेश क्लाइंट्स के लिए दिखाना सबसे आसान होते हैं।- बिना वजह बहुत सारे अपडेट न भेजें: हर छोटे‑से‑छोटे चरण पर प्रगति भेजना शोर पैदा कर सकता है। बहुत बड़े लूप्स के लिए, आप हर N आइटम पर ही रिपोर्ट करना चाह सकते हैं।