mirror of
https://git.asonix.dog/asonix/relay.git
synced 2024-11-14 13:41:01 +00:00
Use newest background-jobs
This commit is contained in:
parent
91a57985c9
commit
f016f14efe
14 changed files with 54 additions and 157 deletions
16
Cargo.lock
generated
16
Cargo.lock
generated
|
@ -470,8 +470,8 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "background-jobs"
|
||||
version = "0.8.0-alpha.0"
|
||||
source = "git+https://git.asonix.dog/Aardwolf/background-jobs#ca1c07366692c44fce6ae351a4a6762089660a20"
|
||||
version = "0.8.0-alpha.1"
|
||||
source = "git+https://git.asonix.dog/Aardwolf/background-jobs#f8fa1bb5ef71724053c8fe68b75d900a51cb4f45"
|
||||
dependencies = [
|
||||
"background-jobs-actix",
|
||||
"background-jobs-core",
|
||||
|
@ -479,8 +479,8 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "background-jobs-actix"
|
||||
version = "0.7.0-alpha.0"
|
||||
source = "git+https://git.asonix.dog/Aardwolf/background-jobs#ca1c07366692c44fce6ae351a4a6762089660a20"
|
||||
version = "0.8.0-alpha.0"
|
||||
source = "git+https://git.asonix.dog/Aardwolf/background-jobs#f8fa1bb5ef71724053c8fe68b75d900a51cb4f45"
|
||||
dependencies = [
|
||||
"actix",
|
||||
"actix-rt",
|
||||
|
@ -500,8 +500,8 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "background-jobs-core"
|
||||
version = "0.7.0"
|
||||
source = "git+https://git.asonix.dog/Aardwolf/background-jobs#ca1c07366692c44fce6ae351a4a6762089660a20"
|
||||
version = "0.8.0-alpha.0"
|
||||
source = "git+https://git.asonix.dog/Aardwolf/background-jobs#f8fa1bb5ef71724053c8fe68b75d900a51cb4f45"
|
||||
dependencies = [
|
||||
"actix",
|
||||
"anyhow",
|
||||
|
@ -2312,9 +2312,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
|
|||
|
||||
[[package]]
|
||||
name = "standback"
|
||||
version = "0.2.4"
|
||||
version = "0.2.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d747fd6d33f130039c9518cffa45a83d53986642ca4f872497df668e3f2b6b4d"
|
||||
checksum = "6389164ce46e8a68e1b373787efcca3b6b6620bb50b12d4e8d14380838db316f"
|
||||
|
||||
[[package]]
|
||||
name = "static_assertions"
|
||||
|
|
|
@ -21,8 +21,8 @@ actix-webfinger = "0.3.0-alpha.3"
|
|||
activitystreams = "0.5.0"
|
||||
ammonia = "3.1.0"
|
||||
async-trait = "0.1.24"
|
||||
background-jobs = { version = "0.8.0-alpha.0", git = "https://git.asonix.dog/Aardwolf/background-jobs", default-features = false, features = ["background-jobs-actix"] }
|
||||
background-jobs-core = { version = "0.7.0", git = "https://git.asonix.dog/Aardwolf/background-jobs" }
|
||||
background-jobs = { version = "0.8.0-alpha.1", git = "https://git.asonix.dog/Aardwolf/background-jobs", default-features = false, features = ["background-jobs-actix"] }
|
||||
background-jobs-core = { version = "0.8.0-alpha.0", git = "https://git.asonix.dog/Aardwolf/background-jobs" }
|
||||
bytes = "0.5.4"
|
||||
base64 = "0.12"
|
||||
bb8-postgres = { version = "0.4.0", features = ["with-serde_json-1", "with-uuid-0_8", "with-chrono-0_4"] }
|
||||
|
|
|
@ -8,7 +8,7 @@ use crate::{
|
|||
},
|
||||
};
|
||||
use activitystreams::primitives::XsdAnyUri;
|
||||
use background_jobs::{ActixJob, Processor};
|
||||
use background_jobs::ActixJob;
|
||||
use std::{future::Future, pin::Pin};
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
|
@ -17,9 +17,6 @@ pub struct Announce {
|
|||
actor: Actor,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct AnnounceProcessor;
|
||||
|
||||
impl Announce {
|
||||
pub fn new(object_id: XsdAnyUri, actor: Actor) -> Self {
|
||||
Announce { object_id, actor }
|
||||
|
@ -60,18 +57,12 @@ fn generate_announce(
|
|||
}
|
||||
|
||||
impl ActixJob for Announce {
|
||||
type Processor = AnnounceProcessor;
|
||||
type State = JobState;
|
||||
type Future = Pin<Box<dyn Future<Output = Result<(), anyhow::Error>>>>;
|
||||
|
||||
const NAME: &'static str = "AnnounceProcessor";
|
||||
|
||||
fn run(self, state: Self::State) -> Self::Future {
|
||||
Box::pin(self.perform(state))
|
||||
}
|
||||
}
|
||||
|
||||
impl Processor for AnnounceProcessor {
|
||||
type Job = Announce;
|
||||
|
||||
const NAME: &'static str = "AnnounceProcessor";
|
||||
const QUEUE: &'static str = "default";
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ use crate::{
|
|||
jobs::{apub::prepare_activity, Deliver, JobState},
|
||||
};
|
||||
use activitystreams::primitives::XsdAnyUri;
|
||||
use background_jobs::{ActixJob, Processor};
|
||||
use background_jobs::ActixJob;
|
||||
use std::{future::Future, pin::Pin};
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
|
@ -16,9 +16,6 @@ pub struct Follow {
|
|||
actor: Actor,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct FollowProcessor;
|
||||
|
||||
impl Follow {
|
||||
pub fn new(is_listener: bool, input: AcceptedObjects, actor: Actor) -> Self {
|
||||
Follow {
|
||||
|
@ -105,18 +102,12 @@ fn generate_accept_follow(
|
|||
}
|
||||
|
||||
impl ActixJob for Follow {
|
||||
type Processor = FollowProcessor;
|
||||
type State = JobState;
|
||||
type Future = Pin<Box<dyn Future<Output = Result<(), anyhow::Error>>>>;
|
||||
|
||||
const NAME: &'static str = "FollowProcessor";
|
||||
|
||||
fn run(self, state: Self::State) -> Self::Future {
|
||||
Box::pin(self.perform(state))
|
||||
}
|
||||
}
|
||||
|
||||
impl Processor for FollowProcessor {
|
||||
type Job = Follow;
|
||||
|
||||
const NAME: &'static str = "FollowProcessor";
|
||||
const QUEUE: &'static str = "default";
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ use crate::{
|
|||
data::Actor,
|
||||
jobs::{apub::get_inboxes, DeliverMany, JobState},
|
||||
};
|
||||
use background_jobs::{ActixJob, Processor};
|
||||
use background_jobs::ActixJob;
|
||||
use std::{future::Future, pin::Pin};
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
|
@ -12,9 +12,6 @@ pub struct Forward {
|
|||
actor: Actor,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct ForwardProcessor;
|
||||
|
||||
impl Forward {
|
||||
pub fn new(input: AcceptedObjects, actor: Actor) -> Self {
|
||||
Forward { input, actor }
|
||||
|
@ -34,18 +31,12 @@ impl Forward {
|
|||
}
|
||||
|
||||
impl ActixJob for Forward {
|
||||
type Processor = ForwardProcessor;
|
||||
type State = JobState;
|
||||
type Future = Pin<Box<dyn Future<Output = Result<(), anyhow::Error>>>>;
|
||||
|
||||
const NAME: &'static str = "ForwardProcessor";
|
||||
|
||||
fn run(self, state: Self::State) -> Self::Future {
|
||||
Box::pin(self.perform(state))
|
||||
}
|
||||
}
|
||||
|
||||
impl Processor for ForwardProcessor {
|
||||
type Job = Forward;
|
||||
|
||||
const NAME: &'static str = "ForwardProcessor";
|
||||
const QUEUE: &'static str = "default";
|
||||
}
|
||||
|
|
|
@ -14,13 +14,7 @@ mod forward;
|
|||
mod reject;
|
||||
mod undo;
|
||||
|
||||
pub use self::{
|
||||
announce::{Announce, AnnounceProcessor},
|
||||
follow::{Follow, FollowProcessor},
|
||||
forward::{Forward, ForwardProcessor},
|
||||
reject::{Reject, RejectProcessor},
|
||||
undo::{Undo, UndoProcessor},
|
||||
};
|
||||
pub use self::{announce::Announce, follow::Follow, forward::Forward, reject::Reject, undo::Undo};
|
||||
|
||||
async fn get_inboxes(
|
||||
state: &State,
|
||||
|
|
|
@ -4,15 +4,12 @@ use crate::{
|
|||
jobs::{apub::generate_undo_follow, Deliver, JobState},
|
||||
};
|
||||
use activitystreams::primitives::XsdAnyUri;
|
||||
use background_jobs::{ActixJob, Processor};
|
||||
use background_jobs::ActixJob;
|
||||
use std::{future::Future, pin::Pin};
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
pub struct Reject(pub Actor);
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct RejectProcessor;
|
||||
|
||||
impl Reject {
|
||||
async fn perform(self, state: JobState) -> Result<(), anyhow::Error> {
|
||||
if let Some(_) = state.actors.unfollower(&self.0).await? {
|
||||
|
@ -29,18 +26,12 @@ impl Reject {
|
|||
}
|
||||
|
||||
impl ActixJob for Reject {
|
||||
type Processor = RejectProcessor;
|
||||
type State = JobState;
|
||||
type Future = Pin<Box<dyn Future<Output = Result<(), anyhow::Error>>>>;
|
||||
|
||||
const NAME: &'static str = "RejectProcessor";
|
||||
|
||||
fn run(self, state: Self::State) -> Self::Future {
|
||||
Box::pin(self.perform(state))
|
||||
}
|
||||
}
|
||||
|
||||
impl Processor for RejectProcessor {
|
||||
type Job = Reject;
|
||||
|
||||
const NAME: &'static str = "RejectProcessor";
|
||||
const QUEUE: &'static str = "default";
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ use crate::{
|
|||
jobs::{apub::generate_undo_follow, Deliver, JobState},
|
||||
};
|
||||
use activitystreams::primitives::XsdAnyUri;
|
||||
use background_jobs::{ActixJob, Processor};
|
||||
use background_jobs::ActixJob;
|
||||
use std::{future::Future, pin::Pin};
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
|
@ -14,9 +14,6 @@ pub struct Undo {
|
|||
actor: Actor,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct UndoProcessor;
|
||||
|
||||
impl Undo {
|
||||
pub fn new(input: AcceptedObjects, actor: Actor) -> Self {
|
||||
Undo { input, actor }
|
||||
|
@ -42,18 +39,12 @@ impl Undo {
|
|||
}
|
||||
|
||||
impl ActixJob for Undo {
|
||||
type Processor = UndoProcessor;
|
||||
type State = JobState;
|
||||
type Future = Pin<Box<dyn Future<Output = Result<(), anyhow::Error>>>>;
|
||||
|
||||
const NAME: &'static str = "UndoProcessor";
|
||||
|
||||
fn run(self, state: Self::State) -> Self::Future {
|
||||
Box::pin(self.perform(state))
|
||||
}
|
||||
}
|
||||
|
||||
impl Processor for UndoProcessor {
|
||||
type Job = Undo;
|
||||
|
||||
const NAME: &'static str = "UndoProcessor";
|
||||
const QUEUE: &'static str = "default";
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use crate::{error::MyError, jobs::JobState};
|
||||
use activitystreams::primitives::XsdAnyUri;
|
||||
use anyhow::Error;
|
||||
use background_jobs::{ActixJob, Backoff, Processor};
|
||||
use background_jobs::{ActixJob, Backoff};
|
||||
use std::{future::Future, pin::Pin};
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
|
@ -22,14 +22,13 @@ impl Deliver {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct DeliverProcessor;
|
||||
|
||||
impl ActixJob for Deliver {
|
||||
type State = JobState;
|
||||
type Processor = DeliverProcessor;
|
||||
type Future = Pin<Box<dyn Future<Output = Result<(), Error>>>>;
|
||||
|
||||
const NAME: &'static str = "DeliverProcessor";
|
||||
const BACKOFF: Backoff = Backoff::Exponential(8);
|
||||
|
||||
fn run(self, state: Self::State) -> Self::Future {
|
||||
Box::pin(async move {
|
||||
state.requests.deliver(self.to, &self.data).await?;
|
||||
|
@ -38,11 +37,3 @@ impl ActixJob for Deliver {
|
|||
})
|
||||
}
|
||||
}
|
||||
|
||||
impl Processor for DeliverProcessor {
|
||||
type Job = Deliver;
|
||||
|
||||
const NAME: &'static str = "DeliverProcessor";
|
||||
const QUEUE: &'static str = "default";
|
||||
const BACKOFF_STRATEGY: Backoff = Backoff::Exponential(8);
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ use crate::{
|
|||
};
|
||||
use activitystreams::primitives::XsdAnyUri;
|
||||
use anyhow::Error;
|
||||
use background_jobs::{ActixJob, Processor};
|
||||
use background_jobs::ActixJob;
|
||||
use futures::future::{ready, Ready};
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
|
@ -35,22 +35,13 @@ impl DeliverMany {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct DeliverManyProcessor;
|
||||
|
||||
impl ActixJob for DeliverMany {
|
||||
type State = JobState;
|
||||
type Processor = DeliverManyProcessor;
|
||||
type Future = Ready<Result<(), Error>>;
|
||||
|
||||
const NAME: &'static str = "DeliverManyProcessor";
|
||||
|
||||
fn run(self, state: Self::State) -> Self::Future {
|
||||
ready(self.perform(state))
|
||||
}
|
||||
}
|
||||
|
||||
impl Processor for DeliverManyProcessor {
|
||||
type Job = DeliverMany;
|
||||
|
||||
const NAME: &'static str = "DeliverManyProcessor";
|
||||
const QUEUE: &'static str = "default";
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use crate::{config::UrlKind, jobs::JobState};
|
||||
use activitystreams::primitives::XsdAnyUri;
|
||||
use anyhow::Error;
|
||||
use background_jobs::{ActixJob, Processor};
|
||||
use background_jobs::ActixJob;
|
||||
use futures::join;
|
||||
use std::{future::Future, pin::Pin};
|
||||
|
||||
|
@ -81,26 +81,17 @@ impl QueryInstance {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct InstanceProcessor;
|
||||
|
||||
impl ActixJob for QueryInstance {
|
||||
type State = JobState;
|
||||
type Processor = InstanceProcessor;
|
||||
type Future = Pin<Box<dyn Future<Output = Result<(), Error>>>>;
|
||||
|
||||
const NAME: &'static str = "InstanceProcessor";
|
||||
|
||||
fn run(self, state: Self::State) -> Self::Future {
|
||||
Box::pin(self.perform(state))
|
||||
}
|
||||
}
|
||||
|
||||
impl Processor for InstanceProcessor {
|
||||
type Job = QueryInstance;
|
||||
|
||||
const NAME: &'static str = "InstanceProcessor";
|
||||
const QUEUE: &'static str = "default";
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize)]
|
||||
struct Instance {
|
||||
title: String,
|
||||
|
|
|
@ -15,14 +15,7 @@ use crate::{
|
|||
data::{ActorCache, Media, NodeCache, State},
|
||||
db::Db,
|
||||
error::MyError,
|
||||
jobs::{
|
||||
deliver::DeliverProcessor,
|
||||
deliver_many::DeliverManyProcessor,
|
||||
instance::InstanceProcessor,
|
||||
nodeinfo::NodeinfoProcessor,
|
||||
process_listeners::{Listeners, ListenersProcessor},
|
||||
storage::Storage,
|
||||
},
|
||||
jobs::{process_listeners::Listeners, storage::Storage},
|
||||
requests::Requests,
|
||||
};
|
||||
use background_jobs::{Job, QueueHandle, WorkerConfig};
|
||||
|
@ -56,17 +49,17 @@ pub fn create_workers(
|
|||
config.clone(),
|
||||
)
|
||||
})
|
||||
.register(DeliverProcessor)
|
||||
.register(DeliverManyProcessor)
|
||||
.register(NodeinfoProcessor)
|
||||
.register(InstanceProcessor)
|
||||
.register(ListenersProcessor)
|
||||
.register(apub::AnnounceProcessor)
|
||||
.register(apub::FollowProcessor)
|
||||
.register(apub::ForwardProcessor)
|
||||
.register(apub::RejectProcessor)
|
||||
.register(apub::UndoProcessor)
|
||||
.set_processor_count("default", 4)
|
||||
.register::<Deliver>()
|
||||
.register::<Deliver>()
|
||||
.register::<QueryNodeinfo>()
|
||||
.register::<QueryInstance>()
|
||||
.register::<Listeners>()
|
||||
.register::<apub::Announce>()
|
||||
.register::<apub::Follow>()
|
||||
.register::<apub::Forward>()
|
||||
.register::<apub::Reject>()
|
||||
.register::<apub::Undo>()
|
||||
.set_worker_count("default", 4)
|
||||
.start(remote_handle);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use crate::jobs::JobState;
|
||||
use activitystreams::primitives::XsdAnyUri;
|
||||
use anyhow::Error;
|
||||
use background_jobs::{ActixJob, Processor};
|
||||
use background_jobs::ActixJob;
|
||||
use std::{future::Future, pin::Pin};
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
|
@ -52,26 +52,17 @@ impl QueryNodeinfo {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct NodeinfoProcessor;
|
||||
|
||||
impl ActixJob for QueryNodeinfo {
|
||||
type State = JobState;
|
||||
type Processor = NodeinfoProcessor;
|
||||
type Future = Pin<Box<dyn Future<Output = Result<(), Error>>>>;
|
||||
|
||||
const NAME: &'static str = "NodeinfoProcessor";
|
||||
|
||||
fn run(self, state: Self::State) -> Self::Future {
|
||||
Box::pin(self.perform(state))
|
||||
}
|
||||
}
|
||||
|
||||
impl Processor for NodeinfoProcessor {
|
||||
type Job = QueryNodeinfo;
|
||||
|
||||
const NAME: &'static str = "NodeinfoProcessor";
|
||||
const QUEUE: &'static str = "default";
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
struct Nodeinfo {
|
||||
|
|
|
@ -1,14 +1,11 @@
|
|||
use crate::jobs::{instance::QueryInstance, nodeinfo::QueryNodeinfo, JobState};
|
||||
use anyhow::Error;
|
||||
use background_jobs::{ActixJob, Processor};
|
||||
use background_jobs::ActixJob;
|
||||
use std::{future::Future, pin::Pin};
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
pub struct Listeners;
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct ListenersProcessor;
|
||||
|
||||
impl Listeners {
|
||||
async fn perform(self, state: JobState) -> Result<(), Error> {
|
||||
for listener in state.state.listeners().await {
|
||||
|
@ -24,17 +21,11 @@ impl Listeners {
|
|||
|
||||
impl ActixJob for Listeners {
|
||||
type State = JobState;
|
||||
type Processor = ListenersProcessor;
|
||||
type Future = Pin<Box<dyn Future<Output = Result<(), Error>>>>;
|
||||
|
||||
const NAME: &'static str = "ProcessListenersProcessor";
|
||||
|
||||
fn run(self, state: Self::State) -> Self::Future {
|
||||
Box::pin(self.perform(state))
|
||||
}
|
||||
}
|
||||
|
||||
impl Processor for ListenersProcessor {
|
||||
type Job = Listeners;
|
||||
|
||||
const NAME: &'static str = "ProcessListenersProcessor";
|
||||
const QUEUE: &'static str = "default";
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue