qrush_engine/utils/
constants.rs

1// /Users/snm/ws/xsnm/ws/crates/qrush-engine/src/utils/constants.rs
2
3// ---------------------------------------------------------
4// General
5// ---------------------------------------------------------
6pub const MAX_RETRIES: usize = 3;
7pub const DEFAULT_PAGE: usize = 1;
8pub const DEFAULT_LIMIT: usize = 10;
9
10// ---------------------------------------------------------
11// Redis Keys - All keys use qrush_engine: prefix
12// ---------------------------------------------------------
13
14// Job and Queue Prefixes
15pub const PREFIX_QUEUE: &str = "qrush_engine:queue";
16pub const PREFIX_JOB: &str = "qrush_engine:job";
17
18// Delayed Jobs
19pub const DELAYED_JOBS_KEY: &str = "qrush_engine:delayed_jobs";
20
21// Queues Management
22pub const QUEUES_SET: &str = "qrush_engine:queues";
23pub const QUEUE_CONFIG_PREFIX: &str = "qrush_engine:queue:config";
24
25// Job Status Lists (per queue)
26pub const SUCCESS_LIST_PREFIX: &str = "qrush_engine:success";
27pub const FAILED_LIST_PREFIX: &str = "qrush_engine:failed";
28pub const RETRY_LIST_PREFIX: &str = "qrush_engine:retry";
29
30// Global Job Counters
31pub const COUNTER_SUCCESS: &str = "qrush_engine:qrush:success";
32pub const COUNTER_FAILED: &str = "qrush_engine:qrush:failed";
33pub const COUNTER_TOTAL_JOBS: &str = "qrush_engine:qrush:total_jobs";
34
35// Failed Jobs List
36pub const FAILED_JOBS_LIST: &str = "qrush_engine:failed_jobs";
37
38// Stats Keys (daily)
39pub const STATS_JOBS_PREFIX: &str = "qrush_engine:stats:jobs";
40pub const STATS_JOBS_FAILED_PREFIX: &str = "qrush_engine:stats:jobs";
41
42// Logs (per queue)
43pub const LOGS_PREFIX: &str = "qrush_engine:logs";
44
45// Workers
46pub const WORKER_PREFIX: &str = "qrush_engine:worker";
47
48// Cron
49pub const CRON_JOBS_KEY: &str = "qrush_engine:cron:jobs";              // HASH  id -> json(meta)
50pub const CRON_SCHEDULE_KEY: &str = "qrush_engine:cron:schedule";      // ZSET  score=unix_ts, member=id
51pub const CRON_JOBS_META_KEY: &str = "qrush_engine:cron:jobs:meta";    // HASH  id:enabled -> "0|1" (optional)
52
53// ---------------------------------------------------------
54// Cron Worker
55// ---------------------------------------------------------
56// NOTE: redis::Commands::zrangebyscore_limit expects `count` as `isize`
57// but keeping it usize is fine; cast at call site.
58pub const CLAIM_BATCH_LIMIT: usize = 200;