diff options
| author | Mohamed Bassem <me@mbassem.com> | 2025-10-05 07:04:29 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-05 07:04:29 +0100 |
| commit | 74a1f7b6b600d4cb53352dde7def374c3125721a (patch) | |
| tree | 70b79ebae61456f6ff2cb02a37351fa9817fb342 /packages/plugins-queue-restate/src/tests/utils.ts | |
| parent | 4a580d713621f99abb8baabc9b847ce039d44842 (diff) | |
| download | karakeep-74a1f7b6b600d4cb53352dde7def374c3125721a.tar.zst | |
feat: Restate-based queue plugin (#2011)
* WIP: Initial restate integration
* add retry
* add delay + idempotency
* implement concurrency limits
* add admin stats
* add todos
* add id provider
* handle onComplete failures
* add tests
* add pub key and fix logging
* add priorities
* fail call after retries
* more fixes
* fix retries left
* some refactoring
* fix package.json
* upgrade sdk
* some test cleanups
Diffstat (limited to 'packages/plugins-queue-restate/src/tests/utils.ts')
| -rw-r--r-- | packages/plugins-queue-restate/src/tests/utils.ts | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/packages/plugins-queue-restate/src/tests/utils.ts b/packages/plugins-queue-restate/src/tests/utils.ts new file mode 100644 index 00000000..e02d2dee --- /dev/null +++ b/packages/plugins-queue-restate/src/tests/utils.ts @@ -0,0 +1,23 @@ +export async function waitUntil( + f: () => Promise<boolean>, + description: string, + timeoutMs = 60000, +): Promise<void> { + const startTime = Date.now(); + + while (Date.now() - startTime < timeoutMs) { + console.log(`Waiting for ${description}...`); + try { + const res = await f(); + if (res) { + console.log(`${description}: success`); + return; + } + } catch (error) { + console.log(`${description}: error, retrying...: ${error}`); + } + await new Promise((resolve) => setTimeout(resolve, 1000)); + } + + throw new Error(`${description}: timeout after ${timeoutMs}ms`); +} |
