32 lines
717 B
Rust
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(())
|
|
}
|