Composing an execution id for an activity
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C#
- Sterne
- 1.7k
- Forks
- 335
- Ø Merge
- 2 T. 23 Std.
- Gemergte PRs (30 T.)
- 6
Beschreibung
Hey, reaching out for help.
In order to implement idempotent activities I wish to have a unique string id that will represent a scheduled activity,
same id each time no matter if it is an activity retry.
For example, if I have the following code in the orchestration:
var tasks = Enumerable.Range(0, 20).Select(_ => OrchestrationContext.ScheduleWithRetry<TActivityResult>(
name: "some name",
version: "some version",
retryOptions: new RetryOptions(firstRetryInterval: TimeSpan.FromSeconds(1), maxNumberOfAttempts: 3),
GenerateInAnIdempotantWayAnActivityId()));
await Task.WhenAll(tasks).ConfigureAwait(true);
"GenerateInAnIdempotantWayAnActivityId" method should generate 20 different ids in a deterministic way even though I use "Task.WhenAll" and it should be resilient to the retries (each activity has maxNumberOfAttempts of 3 but the id should be the same on each try).
I went through the contexts and the middleware events and failed to find a way to concat different properties in a secure way.
Will appreciate your help here.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Das Issue nennt keine Dateien, Tests oder Einstiegspunkte; beginne damit, die im Bericht erwähnten Orchestrierungskontexte und Middleware-Ereignisse nachzuverfolgen. Kläre, wie geplante Aktivitäten und Wiederholungsversuche derzeit identifiziert werden, und definiere anschließend, welches unterstützte Verhalten und welche Verifizierung als abgeschlossen gelten würden, damit IDs über gleichzeitige Planung und Wiederholungsversuche hinweg deterministisch sind.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- csharp
- Bereich
- backend-api-design, distributed-systems
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100