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}