orbok_workers/scheduler/
limits.rs1#[derive(Debug, Clone)]
8pub struct SchedulerLimits {
9 pub scan_workers: usize,
10 pub extract_workers: usize,
11 pub chunk_workers: usize,
12 pub keyword_workers: usize,
13 pub embedding_workers: usize,
14 pub maintenance_workers: usize,
15}
16
17impl Default for SchedulerLimits {
18 fn default() -> Self {
19 Self {
20 scan_workers: 1,
21 extract_workers: 1,
22 chunk_workers: 1,
23 keyword_workers: 1,
24 embedding_workers: 1,
25 maintenance_workers: 1,
26 }
27 }
28}
29
30#[derive(Debug, Clone)]
35pub struct QueueCapacity {
36 pub scan_queue_max: usize,
37 pub extract_queue_max: usize,
38 pub chunk_queue_max: usize,
39 pub keyword_queue_max: usize,
40 pub embedding_queue_max: usize,
41 pub maintenance_queue_max: usize,
42}
43
44impl Default for QueueCapacity {
45 fn default() -> Self {
46 Self {
47 scan_queue_max: 10_000,
48 extract_queue_max: 1_000,
49 chunk_queue_max: 1_000,
50 keyword_queue_max: 1_000,
51 embedding_queue_max: 2_000,
52 maintenance_queue_max: 200,
53 }
54 }
55}
56
57pub const MAX_JOB_ATTEMPTS: u32 = 3;
59
60#[derive(Debug, Clone, Default)]
62pub struct SchedulerConfig {
63 pub limits: SchedulerLimits,
64 pub capacity: QueueCapacity,
65}