Add HTTP-specific retry options to azure-functions-durable v2 call_http
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 45/100
Rechercherichtung
Beginne mit DurableOrchestrationContext.call_http und dem HTTP-Worker-Pfad in azure-functions-durable/azure/durable_functions/http/models.py und builtin.py. Verfolge die Serialisierung der Anfrage und den Polling-Orchestrator, bevor du die Semantik von .NET HttpRetryOptions vergleichst. Als abgeschlossen gilt die Implementierung konfigurierter Wiederholungen bei Fehlern, die Beibehaltung des 202-Pollings und des Verhaltens ohne Optionen, dokumentierte Verwendung sowie Tests für Erfolg, Ausschöpfung, Ausschlüsse, Limits, Replay und das Zusammenspiel mit dem Polling.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Add configurable, durable HTTP failure retries to the azure-functions-durable v2 compatibility package in this repository. This is the Python v2 follow-up to Azure/azure-functions-durable-extension#1984, not a request for generic activity retry support.
Current behavior
Checked azure-functions-durable==2.0.0rc1 (azurefunctions-v2.0.0rc1):
DurableOrchestrationContext.call_http(method, uri, content=None, headers=None, token_source=None, is_raw_str=False)has no HTTP retry parameter and schedules the built-in HTTP polling sub-orchestration.DurableHttpRequestneither accepts nor serializes a retry policy or retryable-status-code list.builtin_http_activityreturns HTTP error responses rather than treating selected statuses as retryable failures.- The polling orchestrator calls activities without a retry policy and repeats only for HTTP 202 responses with a Location header.
This package executes HTTP through worker-side built-ins rather than the extension's native HTTP action. Retry support must be implemented in that worker path, not just added to a host-bound JSON field.
Acceptance Criteria
- Expose HTTP-specific retry configuration on
call_http, including first retry interval, maximum attempts, backoff coefficient, maximum retry interval, retry timeout, and retryable HTTP status codes. - Carry the configuration through the request model/serialization and apply durable retries to selected HTTP statuses and retryable transport failures.
- Define and document status-code defaults consistent with .NET
HttpRetryOptions(an omitted/empty status-code list retries 4xx/5xx responses when a retry policy is supplied). - Preserve existing behavior when retry options are omitted, and keep HTTP 202 polling distinct from failure retries.
- Add coverage for retry-then-success, exhausted attempts, excluded status codes, backoff/timeout limits, replay, and interaction with 202 polling.
- Document usage and any intentional differences from .NET HTTP retry semantics.
Related
- Original cross-language tracker: Azure/azure-functions-durable-extension#1984.
- Equivalent Node v4 work: microsoft/durabletask-js#367.
- .NET HttpRetryOptions reference implementation.
- Vorherrschende Sprache
- Python
- Sterne
- 40
- Forks
- 33
- Ø Merge
- 2 T. 2 Std.
- Gemergte PRs (30 T.)
- 6
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus microsoft/durabletask-python
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 72/100
microsoft/durabletask-python#266 ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 38/100
microsoft/durabletask-python#249 ·
-
bug Functions Parity
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
microsoft/durabletask-python#241 · 2 Kommentare ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 30/100
microsoft/durabletask-python#234 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 76/100
microsoft/durabletask-python#222 ·
Alle Issues in microsoft/durabletask-python
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
anthropics/skills#1811 · 1 Kommentar ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
speaches-ai/speaches#678 ·
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
datalayer/mcp-compose#42 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
conda-forge/spacy-feedstock#177 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
UKGovernmentBEIS/inspect_evals#2523 ·