apalis_postgres/queries/
register_worker.rs1use apalis_core::worker::context::WorkerContext;
2use sqlx::Executor;
3
4use crate::{error::Error, timestamp::Timestamp};
5
6pub async fn register_worker<E>(
10 conn: &mut E,
11 queue: &str,
12 worker: &WorkerContext,
13 last_seen: &Timestamp,
14 backend_type: &str,
15) -> Result<(), Error>
16where
17 for<'e> &'e mut E: Executor<'e, Database = sqlx::Postgres>,
18{
19 let res = sqlx::query_file!(
20 "queries/worker/register.sql",
21 worker.name(),
22 queue,
23 backend_type,
24 worker.get_service(),
25 last_seen
26 )
27 .execute(conn)
28 .await?;
29 if res.rows_affected() == 0 {
30 return Err(Error::WorkerAlreadyExists(worker.name().to_owned()));
31 }
32 Ok(())
33}