Skip to content

Scheduler

Process-local scheduler for semantic memory dedupe weekend jobs.

This module keeps automatic semantic dedupe scheduling internal to gllm-memory. The scheduler is intentionally small: it owns one daemon thread per configured vector-store target and ensures one process does not register duplicate weekend jobs for the same store.

ensure_semantic_memory_dedupe_scheduler(*, scheduler_key, settings, runner)

Register one process-local scheduler when the key is supported.

Parameters:

Name Type Description Default
scheduler_key str | None

Stable ownership key for the target store.

required
settings SemanticMemoryDedupeSettings

Dedupe schedule settings.

required
runner Callable[[], Awaitable[object]]

Async dedupe runner.

required

Returns:

Name Type Description
bool bool

True when a new scheduler is registered.

release_semantic_memory_dedupe_scheduler(*, scheduler_key)

Release one scheduler owner and stop the thread when the last owner is gone.

Parameters:

Name Type Description Default
scheduler_key str | None

Stable ownership key for the target store.

required

Returns:

Name Type Description
bool bool

True when a running scheduler was stopped and removed.