gitea_pages/backend/src/worker/update_repos.rs

32 lines
717 B
Rust

use anyhow::Result;
use celery::prelude::*;
use diesel::prelude::*;
use uuidv7::Uuid;
use crate::{db, worker};
async fn do_task() -> Result<()> {
let db_conn = &mut db::POOL.get()?;
let repo_ids = db::schema::repositories::table
.select(db::schema::repositories::id)
.load::<Uuid>(db_conn)?;
let worker_conn = worker::POOL.get().await.get().await?;
for id in repo_ids {
worker_conn
.send_task(worker::get_repo::get_repo::new(id))
.await?;
}
Ok(())
}
#[celery::task]
pub async fn update_repos() -> TaskResult<()> {
if let Err(e) = do_task().await {
return Err(TaskError::UnexpectedError(format!("{:?}", e)));
}
Ok(())
}