fix: resolve 3 CRITICAL + 5 MAJOR issues from Codex review
C1: Arc<Mutex<EventStore>> changed from tokio::sync to std::sync + spawn_blocking C2: StateMachine::transition merged into single lock scope C3: Transaction boundaries (BEGIN/COMMIT) on all composite writes M4: retry_count no longer overwritten by update_task_status M5: RetryPolicy::handle_failure now atomic (single lock + transaction) M6: Per-task timeout_seconds used in SQL instead of global config M7: Explicit Priority::order() method instead of relying on variant order M8: dequeue_and_assign uses CAS-style WHERE status='created' for atomicity
This commit is contained in:
parent
b1a4d66c13
commit
2658a74730
7 changed files with 434 additions and 235 deletions
|
|
@ -74,6 +74,29 @@ pub enum Priority {
|
|||
Urgent,
|
||||
}
|
||||
|
||||
impl Priority {
|
||||
/// Explicit priority ordering (lower = higher priority).
|
||||
/// Not reliant on variant declaration order.
|
||||
pub fn order(&self) -> u8 {
|
||||
match self {
|
||||
Self::Urgent => 0,
|
||||
Self::High => 1,
|
||||
Self::Normal => 2,
|
||||
Self::Low => 3,
|
||||
}
|
||||
}
|
||||
|
||||
/// Serialize to the string stored in the DB.
|
||||
pub fn as_str(&self) -> &'static str {
|
||||
match self {
|
||||
Self::Low => "low",
|
||||
Self::Normal => "normal",
|
||||
Self::High => "high",
|
||||
Self::Urgent => "urgent",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct Task {
|
||||
pub task_id: String,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue