mirror of
https://git.asonix.dog/asonix/relay.git
synced 2024-11-25 02:51:12 +00:00
Use ActixJob, save a few lines
This commit is contained in:
parent
b8bc230403
commit
680ccc511c
8 changed files with 29 additions and 56 deletions
12
Cargo.lock
generated
12
Cargo.lock
generated
|
@ -470,7 +470,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "background-jobs"
|
||||
version = "0.8.0-alpha.0"
|
||||
source = "git+https://git.asonix.dog/Aardwolf/background-jobs#799391811c795f0918e0df2b1a1b5fc44f55f89f"
|
||||
source = "git+https://git.asonix.dog/Aardwolf/background-jobs#ca1c07366692c44fce6ae351a4a6762089660a20"
|
||||
dependencies = [
|
||||
"background-jobs-actix",
|
||||
"background-jobs-core",
|
||||
|
@ -479,7 +479,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "background-jobs-actix"
|
||||
version = "0.7.0-alpha.0"
|
||||
source = "git+https://git.asonix.dog/Aardwolf/background-jobs#799391811c795f0918e0df2b1a1b5fc44f55f89f"
|
||||
source = "git+https://git.asonix.dog/Aardwolf/background-jobs#ca1c07366692c44fce6ae351a4a6762089660a20"
|
||||
dependencies = [
|
||||
"actix",
|
||||
"actix-rt",
|
||||
|
@ -500,8 +500,9 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "background-jobs-core"
|
||||
version = "0.7.0"
|
||||
source = "git+https://git.asonix.dog/Aardwolf/background-jobs#799391811c795f0918e0df2b1a1b5fc44f55f89f"
|
||||
source = "git+https://git.asonix.dog/Aardwolf/background-jobs#ca1c07366692c44fce6ae351a4a6762089660a20"
|
||||
dependencies = [
|
||||
"actix",
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
"chrono",
|
||||
|
@ -510,6 +511,7 @@ dependencies = [
|
|||
"serde 1.0.105",
|
||||
"serde_json",
|
||||
"thiserror",
|
||||
"tokio",
|
||||
"uuid",
|
||||
]
|
||||
|
||||
|
@ -662,9 +664,9 @@ checksum = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1"
|
|||
|
||||
[[package]]
|
||||
name = "bytestring"
|
||||
version = "0.1.4"
|
||||
version = "0.1.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fc267467f58ef6cc8874064c62a0423eb0d099362c8a23edd1c6d044f46eead4"
|
||||
checksum = "fc7c05fa5172da78a62d9949d662d2ac89d4cc7355d7b49adee5163f1fb3f363"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
]
|
||||
|
|
0
src/jobs/apub/announce.rs
Normal file
0
src/jobs/apub/announce.rs
Normal file
1
src/jobs/apub/mod.rs
Normal file
1
src/jobs/apub/mod.rs
Normal file
|
@ -0,0 +1 @@
|
|||
mod announce;
|
|
@ -1,9 +1,8 @@
|
|||
use crate::{error::MyError, jobs::JobState};
|
||||
use activitystreams::primitives::XsdAnyUri;
|
||||
use anyhow::Error;
|
||||
use background_jobs::{Backoff, Job, Processor};
|
||||
use background_jobs::{ActixJob, Backoff, Processor};
|
||||
use std::{future::Future, pin::Pin};
|
||||
use tokio::sync::oneshot;
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
pub struct Deliver {
|
||||
|
@ -21,30 +20,22 @@ impl Deliver {
|
|||
data: serde_json::to_value(data)?,
|
||||
})
|
||||
}
|
||||
|
||||
async fn perform(self, state: JobState) -> Result<(), Error> {
|
||||
state.requests.deliver(self.to, &self.data).await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct DeliverProcessor;
|
||||
|
||||
impl Job for Deliver {
|
||||
impl ActixJob for Deliver {
|
||||
type State = JobState;
|
||||
type Processor = DeliverProcessor;
|
||||
type Future = Pin<Box<dyn Future<Output = Result<(), Error>> + Send>>;
|
||||
type Future = Pin<Box<dyn Future<Output = Result<(), Error>>>>;
|
||||
|
||||
fn run(self, state: Self::State) -> Self::Future {
|
||||
let (tx, rx) = oneshot::channel();
|
||||
Box::pin(async move {
|
||||
state.requests.deliver(self.to, &self.data).await?;
|
||||
|
||||
actix::spawn(async move {
|
||||
let _ = tx.send(self.perform(state).await);
|
||||
});
|
||||
|
||||
Box::pin(async move { rx.await? })
|
||||
Ok(())
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ use crate::{
|
|||
};
|
||||
use activitystreams::primitives::XsdAnyUri;
|
||||
use anyhow::Error;
|
||||
use background_jobs::{Job, Processor};
|
||||
use background_jobs::{ActixJob, Processor};
|
||||
use futures::future::{ready, Ready};
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
|
@ -38,7 +38,7 @@ impl DeliverMany {
|
|||
#[derive(Clone, Debug)]
|
||||
pub struct DeliverManyProcessor;
|
||||
|
||||
impl Job for DeliverMany {
|
||||
impl ActixJob for DeliverMany {
|
||||
type State = JobState;
|
||||
type Processor = DeliverManyProcessor;
|
||||
type Future = Ready<Result<(), Error>>;
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
use crate::{config::UrlKind, jobs::JobState};
|
||||
use activitystreams::primitives::XsdAnyUri;
|
||||
use anyhow::Error;
|
||||
use background_jobs::{Job, Processor};
|
||||
use background_jobs::{ActixJob, Processor};
|
||||
use futures::join;
|
||||
use std::{future::Future, pin::Pin};
|
||||
use tokio::sync::oneshot;
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
pub struct QueryInstance {
|
||||
|
@ -85,19 +84,13 @@ impl QueryInstance {
|
|||
#[derive(Clone, Debug)]
|
||||
pub struct InstanceProcessor;
|
||||
|
||||
impl Job for QueryInstance {
|
||||
impl ActixJob for QueryInstance {
|
||||
type State = JobState;
|
||||
type Processor = InstanceProcessor;
|
||||
type Future = Pin<Box<dyn Future<Output = Result<(), Error>> + Send>>;
|
||||
type Future = Pin<Box<dyn Future<Output = Result<(), Error>>>>;
|
||||
|
||||
fn run(self, state: Self::State) -> Self::Future {
|
||||
let (tx, rx) = oneshot::channel();
|
||||
|
||||
actix::spawn(async move {
|
||||
let _ = tx.send(self.perform(state).await);
|
||||
});
|
||||
|
||||
Box::pin(async move { rx.await? })
|
||||
Box::pin(self.perform(state))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
use crate::jobs::JobState;
|
||||
use activitystreams::primitives::XsdAnyUri;
|
||||
use anyhow::Error;
|
||||
use background_jobs::{Job, Processor};
|
||||
use background_jobs::{ActixJob, Processor};
|
||||
use std::{future::Future, pin::Pin};
|
||||
use tokio::sync::oneshot;
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
pub struct QueryNodeinfo {
|
||||
|
@ -56,19 +55,13 @@ impl QueryNodeinfo {
|
|||
#[derive(Clone, Debug)]
|
||||
pub struct NodeinfoProcessor;
|
||||
|
||||
impl Job for QueryNodeinfo {
|
||||
impl ActixJob for QueryNodeinfo {
|
||||
type State = JobState;
|
||||
type Processor = NodeinfoProcessor;
|
||||
type Future = Pin<Box<dyn Future<Output = Result<(), Error>> + Send>>;
|
||||
type Future = Pin<Box<dyn Future<Output = Result<(), Error>>>>;
|
||||
|
||||
fn run(self, state: Self::State) -> Self::Future {
|
||||
let (tx, rx) = oneshot::channel();
|
||||
|
||||
actix::spawn(async move {
|
||||
let _ = tx.send(self.perform(state).await);
|
||||
});
|
||||
|
||||
Box::pin(async move { rx.await? })
|
||||
Box::pin(self.perform(state))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
use crate::jobs::{instance::QueryInstance, nodeinfo::QueryNodeinfo, JobState};
|
||||
use anyhow::Error;
|
||||
use background_jobs::{Job, Processor};
|
||||
use background_jobs::{ActixJob, Processor};
|
||||
use std::{future::Future, pin::Pin};
|
||||
use tokio::sync::oneshot;
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
pub struct Listeners;
|
||||
|
@ -23,19 +22,13 @@ impl Listeners {
|
|||
}
|
||||
}
|
||||
|
||||
impl Job for Listeners {
|
||||
impl ActixJob for Listeners {
|
||||
type State = JobState;
|
||||
type Processor = ListenersProcessor;
|
||||
type Future = Pin<Box<dyn Future<Output = Result<(), Error>> + Send>>;
|
||||
type Future = Pin<Box<dyn Future<Output = Result<(), Error>>>>;
|
||||
|
||||
fn run(self, state: Self::State) -> Self::Future {
|
||||
let (tx, rx) = oneshot::channel();
|
||||
|
||||
actix::spawn(async move {
|
||||
let _ = tx.send(self.perform(state).await);
|
||||
});
|
||||
|
||||
Box::pin(async move { rx.await? })
|
||||
Box::pin(self.perform(state))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue