Skip to main content

apalis_sqlite/queries/
lock_task.rs

1use sqlx::Executor;
2
3/// Lock multiple tasks, given a worker
4pub async fn lock_tasks<'a, E>(
5    executor: E,
6    task_ids: &[String],
7    worker_id: &str,
8) -> Result<u64, sqlx::Error>
9where
10    E: Executor<'a, Database = sqlx::Sqlite>,
11{
12    let ids_json = serde_json::to_string(task_ids).map_err(|e| sqlx::Error::Decode(Box::new(e)))?;
13
14    let res = sqlx::query_file!("queries/task/lock.sql", ids_json, worker_id)
15        .execute(executor)
16        .await?;
17
18    Ok(res.rows_affected())
19}