StackExchange / StackExchange/StackExchange.Redis
Resumable scan through keys
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C#
- Sterne
- 6.2k
- Forks
- 1.6k
- Ø Merge
- 1 T. 15 Std.
- Gemergte PRs (30 T.)
- 43
Beschreibung
Hi, I am trying to process keys on server in this batch pattern.
var cursor = 0;
do
{
var keyBatch = await GetKeysAsync(cursor);
foreach (var key in keyBatch)
{
ProcessKey(key);
}
cursor = keyBatch.NextCursor;
} while (cursor != 0);
How can I achieve this behaviour using IServer and IScanningCursor? This does not work.
var cursor = 0L;
do
{
var counter = 0;
var keys = server.KeysAsync(1, "user:*", 1000, cursor);
await foreach (var key in keys)
{
counter++;
}
Console.WriteLine($"{cursor}, {counter}");
cursor = ((IScanningCursor) keys).Cursor;
} while (cursor != 0);
Beitragsleitfaden
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
Beginnen Sie mit dem in den Beispielen erwähnten Einstiegspunkt IServer.KeysAsync und der Schnittstelle IScanningCursor. Verfolgen Sie anschließend, wie der Cursor nach der asynchronen Enumeration bereitgestellt wird. Reproduzieren Sie die Batch-Schleife gegen Redis und vergleichen Sie den beobachteten Cursor mit dem erwarteten Fortsetzungsverhalten; als erledigt gilt die Aufgabe, wenn das beabsichtigte fortsetzbare Scan-Verhalten festgestellt oder die Abweichung dokumentiert ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- csharp, redis
- Bereich
- api, databases
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 20/100