Skip to content

Error Handling

Retry, fallback, and circuit breaker patterns.

3 modules

ModuleDescription
सर्किट ब्रेकरसर्किट ब्रेकर पैटर्न के साथ श्रृंखलाबद्ध विफलताओं से बचाव करें
फॉलबैकऑपरेशन विफल होने पर फॉलबैक मान प्रदान करें
पुनः प्रयास करेंकॉन्फ़िगर करने योग्य पुनः प्रयास लॉजिक के साथ ऑपरेशंस को लपेटें

Modules

सर्किट ब्रेकर

error.circuit_breaker

सर्किट ब्रेकर पैटर्न के साथ श्रृंखलाबद्ध विफलताओं से बचाव करें

Parameters:

NameTypeRequiredDefaultDescription
actionobjectYes-सर्किट ब्रेकर के साथ सुरक्षित की जाने वाली क्रिया
circuit_idstringYes-सर्किट ब्रेकर के साथ सुरक्षित की जाने वाली क्रिया
failure_thresholdnumberNo5इस सर्किट के लिए अद्वितीय पहचानकर्ता (स्थिति ट्रैकिंग के लिए)
failure_window_msnumberNo60000विफलताओं की गणना के लिए समय विंडो
recovery_timeout_msnumberNo30000पुनर्प्राप्ति का प्रयास करने से पहले का समय (आधा-खुला स्थिति)
success_thresholdnumberNo3सर्किट को बंद करने के लिए आधा-खुला में आवश्यक सफल अनुरोध
fallbackobjectNo-सर्किट खुला होने पर वैकल्पिक क्रिया
fallback_valueanyNo-सर्किट खुला होने पर वैकल्पिक क्रिया
track_errorsarrayNo[]सर्किट खुला होने पर लौटाने के लिए स्थिर मान

Output:

FieldTypeDescription
__event__stringकेवल इन त्रुटि कोडों को सीमा की ओर गिनें (खाली = सभी)
resultanyरूटिंग के लिए इवेंट (सफलता/सर्किट खुला/फॉलबैक)
circuit_statestringक्रिया या फॉलबैक से परिणाम
failure_countnumberसर्किट की वर्तमान स्थिति (बंद/खुला/आधा खुला)
last_failure_timestringविंडो में वर्तमान विफलता गणना
circuit_opened_atstringअंतिम विफलता का समय

Example: Example

yaml
action: {"module": "http.post", "params": {"url": "https://api.example.com/submit"}}
circuit_id: example-api
failure_threshold: 5
failure_window_ms: 60000
recovery_timeout_ms: 30000

Example: Example

yaml
action: {"module": "http.get", "params": {"url": "https://api.example.com/data"}}
circuit_id: data-api
failure_threshold: 3
fallback: {"module": "cache.get", "params": {"key": "data_cache"}}

Example: Example

yaml
action: {"module": "database.query", "params": {"query": "SELECT * FROM users"}}
circuit_id: database
failure_threshold: 3
fallback_value: {"users": [], "from_cache": false}

फॉलबैक

error.fallback

ऑपरेशन विफल होने पर फॉलबैक मान प्रदान करें

Parameters:

NameTypeRequiredDefaultDescription
operationobjectNo-प्रयास करने के लिए प्राथमिक ऑपरेशन
fallback_valueanyNo-प्रयास करने के लिए प्राथमिक ऑपरेशन
fallback_operationobjectNo-विफलता पर लौटाने के लिए स्थिर मान
fallback_onarrayNo[]विफलता पर निष्पादित करने के लिए वैकल्पिक ऑपरेशन
include_error_infobooleanNoTrueत्रुटि कोड जो फॉलबैक को ट्रिगर करते हैं (खाली = सभी त्रुटियाँ)
log_fallbackbooleanNoTrueआउटपुट में मूल त्रुटि जानकारी शामिल करें

Output:

FieldTypeDescription
resultanyजब फॉलबैक का उपयोग किया जाता है तो लॉग करें
used_fallbackbooleanप्राथमिक ऑपरेशन या फॉलबैक से परिणाम
sourcestringक्या फॉलबैक का उपयोग किया गया था
original_errorobjectपरिणाम का स्रोत (प्राथमिक/फॉलबैक मान/फॉलबैक ऑपरेशन)

Example: Example

yaml
operation: {"module": "http.get", "params": {"url": "https://api.example.com/items"}}
fallback_value: []

Example: Example

yaml
operation: {"module": "http.get", "params": {"url": "https://api.example.com/config"}}
fallback_operation: {"module": "cache.get", "params": {"key": "config_cache"}}

Example: Example

yaml
operation: {"module": "api.call", "params": {"endpoint": "/data"}}
fallback_value: {"status": "unavailable"}
fallback_on: ["NETWORK_ERROR", "TIMEOUT_ERROR"]

पुनः प्रयास करें

error.retry

कॉन्फ़िगर करने योग्य पुनः प्रयास लॉजिक के साथ ऑपरेशंस को लपेटें

Parameters:

NameTypeRequiredDefaultDescription
operationobjectYes-पुनः प्रयास करने के लिए ऑपरेशन (मॉड्यूल आईडी और पैरामीटर)
max_retriesnumberNo3पुनः प्रयास करने के लिए ऑपरेशन (मॉड्यूल आईडी और पैरामीटर)
initial_delay_msnumberNo1000पुनः प्रयास के अधिकतम प्रयासों की संख्या
max_delay_msnumberNo30000पहले पुनः प्रयास से पहले प्रारंभिक देरी
backoff_multipliernumberNo2.0घातीय बैकऑफ़ के लिए गुणक (जैसे, 2 प्रत्येक पुनः प्रयास की देरी को दोगुना करता है)
jitterbooleanNoTrueथंडरिंग हर्ड को रोकने के लिए देरी में रैंडम जिटर जोड़ें
retry_onarrayNo[]थंडरिंग हर्ड को रोकने के लिए देरी में रैंडम जिटर जोड़ें
timeout_per_attempt_msnumberNo0पुनः प्रयास करने के लिए त्रुटि कोड की सूची (खाली = सभी पर पुनः प्रयास करें)

Output:

FieldTypeDescription
__event__stringप्रत्येक प्रयास के लिए समय सीमा (0 का मतलब कोई समय सीमा नहीं)
resultanyरूटिंग के लिए इवेंट (सफल/थकित)
attemptsnumberरूटिंग के लिए इवेंट (सफल/थकित)
total_delay_msnumberसफल प्रयास से परिणाम
errorsarrayकिए गए प्रयासों की संख्या

Example: Example

yaml
operation: {"module": "http.get", "params": {"url": "https://api.example.com/data"}}
max_retries: 3

Example: Example

yaml
operation: {"module": "database.query", "params": {"query": "SELECT * FROM users"}}
max_retries: 5
initial_delay_ms: 2000
backoff_multiplier: 2.0
jitter: true

Example: Example

yaml
operation: {"module": "api.call", "params": {"endpoint": "/submit"}}
max_retries: 3
retry_on: ["NETWORK_ERROR", "TIMEOUT_ERROR", "SERVICE_UNAVAILABLE"]

Released under the Apache 2.0 License.