mirror of
https://github.com/badlogic/pi-mono.git
synced 2026-11-05 23:37:25 +00:00
feat(durable): workerd tests for Durable Object hosting
Runs the storage conformance suite, the schema migration, an alarm-woken sleep across an eviction, and a turn recovered through the recovery alarm in workerd via @cloudflare/vitest-plugin (npm run test:workers). fix(durable): decline background timers in Cloudflare Workers. With nodejs_compat, timers have an unref(), so the idle-memory timers were armed and a pending one kept a Durable Object from hibernating or being evicted.
This commit is contained in:
parent
f75b3240ab
commit
ea7c648430
15 changed files with 1439 additions and 13 deletions
|
|
@ -187,7 +187,7 @@ export class Session extends DurableObject<Env> {
|
|||
}
|
||||
```
|
||||
|
||||
The default `setTimer` declines the timers that only free memory where timers cannot be unreferenced, as in Workers, so no pending timer keeps the object from hibernating.
|
||||
The default `setTimer` declines the timers that only free memory in Workers, so no pending timer keeps the object from hibernating or being evicted; memory is then freed at later commits.
|
||||
|
||||
## Extensions
|
||||
|
||||
|
|
@ -383,7 +383,7 @@ const harness = await Harness.open(storage, {
|
|||
compaction: { reserveTokens: 16384 },
|
||||
progress: { partialIntervalMs: 100, outputIntervalMs: 100 },
|
||||
toolExecution: "parallel",
|
||||
contextRetentionMs: 600_000, // idle conversations keep their context in memory this long (checked lazily where timers cannot be unreferenced)
|
||||
contextRetentionMs: 600_000, // idle conversations keep their context in memory this long (checked lazily where background timers are declined, as in Workers)
|
||||
documentRetentionMs: 600_000, // loaded documents nothing observes stay in memory this long after their last use; observed ones always
|
||||
get followUpMode() {
|
||||
return userSettings.followUpMode;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue