rally_runtime/system
System database: observability and background jobs.
Opens a separate SQLite database (system.db) for message logging and the job queue. The connection is stored globally so any WS handler process can log messages. Uses synchronous=OFF because losing a few recent log entries on crash is acceptable for the throughput gain.
Values
pub fn enqueue(
name name: String,
payload payload: BitArray,
run_at run_at: Int,
) -> Nil
Enqueue a job to run at a specific time.
pub fn enqueue_in(
name name: String,
payload payload: BitArray,
delay_seconds delay_seconds: Int,
) -> Nil
Enqueue a job to run after a delay.
pub fn enqueue_now(
name name: String,
payload payload: BitArray,
) -> Nil
Enqueue a job to run immediately.
pub fn get_conn() -> Result(sqlight.Connection, Nil)
pub fn log_broadcast(
db db: sqlight.Connection,
page page: String,
variant variant: String,
) -> Nil
pub fn log_to_client(
db db: sqlight.Connection,
session_id session_id: String,
user_id user_id: Result(Int, Nil),
page page: String,
variant variant: String,
elapsed_ms elapsed_ms: Int,
) -> Nil
pub fn log_to_server(
db db: sqlight.Connection,
session_id session_id: String,
user_id user_id: Result(Int, Nil),
page page: String,
variant_name variant_name: String,
raw_payload raw_payload: BitArray,
elapsed_ms elapsed_ms: Int,
) -> Nil
pub fn open(
path: String,
) -> Result(sqlight.Connection, sqlight.Error)
pub fn start(path: String) -> Nil
Call during app startup. Opens the system DB and stores the connection globally so any process (WS handlers) can access it.
pub fn start_with_jobs(
path path: String,
handler handler: fn(String, BitArray) -> Result(Nil, String),
) -> Nil
Start the system DB with a background job runner.