Skip to content

Commit 0892e99

Browse files
committed
feat(backend): move all background jobs into one
1 parent 6a6c046 commit 0892e99

File tree

7 files changed

+15
-59
lines changed

7 files changed

+15
-59
lines changed

Cargo.lock

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/backend/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ryot"
3-
version = "6.1.3"
3+
version = "6.1.4"
44
edition = "2021"
55
repository = "https://github.com/IgnisDa/ryot"
66
license = "GPL-3.0"

apps/backend/src/background.rs

+3-12
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,11 @@ impl Job for ScheduledJob {
3333
const NAME: &'static str = "apalis::ScheduledJob";
3434
}
3535

36-
pub async fn media_jobs(
36+
pub async fn background_jobs(
3737
_information: ScheduledJob,
3838
misc_service: Data<Arc<MiscellaneousService>>,
3939
) -> Result<(), Error> {
40-
misc_service.perform_media_jobs().await.unwrap();
41-
Ok(())
42-
}
43-
44-
pub async fn user_jobs(
45-
_information: ScheduledJob,
46-
misc_service: Data<Arc<MiscellaneousService>>,
47-
) -> Result<(), Error> {
48-
misc_service.perform_user_jobs().await.unwrap();
40+
misc_service.perform_background_jobs().await.unwrap();
4941
Ok(())
5042
}
5143

@@ -156,8 +148,7 @@ pub async fn perform_application_job(
156148
misc_service.recalculate_calendar_events().await.is_ok()
157149
}
158150
ApplicationJob::PerformBackgroundTasks => {
159-
misc_service.perform_user_jobs().await.unwrap();
160-
misc_service.perform_media_jobs().await.is_ok()
151+
misc_service.perform_background_jobs().await.is_ok()
161152
}
162153
ApplicationJob::AssociateGroupWithMetadata(lot, source, identifier) => misc_service
163154
.commit_metadata_group(CommitMediaInput {

apps/backend/src/main.rs

+3-21
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ use utils::TEMP_DIR;
4242

4343
use crate::{
4444
background::{
45-
media_jobs, perform_application_job, perform_core_application_job, user_jobs,
45+
background_jobs, perform_application_job, perform_core_application_job,
4646
yank_integrations_data,
4747
},
4848
entities::prelude::Exercise,
@@ -92,7 +92,6 @@ async fn main() -> Result<()> {
9292
.map(|f| f.parse().unwrap())
9393
.collect_vec();
9494
let rate_limit_count = config.scheduler.rate_limit_num;
95-
let user_cleanup_every = config.scheduler.user_cleanup_every;
9695
let pull_every = config.integration.pull_every;
9796
let max_file_size = config.server.max_file_size;
9897
let disable_background_jobs = config.server.disable_background_jobs;
@@ -237,7 +236,6 @@ async fn main() -> Result<()> {
237236

238237
let importer_service_1 = app_services.importer_service.clone();
239238
let exporter_service_1 = app_services.exporter_service.clone();
240-
let media_service_1 = app_services.media_service.clone();
241239
let media_service_2 = app_services.media_service.clone();
242240
let media_service_3 = app_services.media_service.clone();
243241
let media_service_4 = app_services.media_service.clone();
@@ -246,25 +244,9 @@ async fn main() -> Result<()> {
246244

247245
let monitor = async {
248246
Monitor::<TokioExecutor>::new()
249-
// cron jobs
250247
.register_with_count(
251248
1,
252-
WorkerBuilder::new("general_user_cleanup")
253-
.stream(
254-
CronStream::new_with_timezone(
255-
Schedule::from_str(&format!("0 0 */{} ? * *", user_cleanup_every))
256-
.unwrap(),
257-
tz,
258-
)
259-
.into_stream(),
260-
)
261-
.layer(ApalisTraceLayer::new())
262-
.data(media_service_1.clone())
263-
.build_fn(user_jobs),
264-
)
265-
.register_with_count(
266-
1,
267-
WorkerBuilder::new("general_media_cleanup_job")
249+
WorkerBuilder::new("background_jobs")
268250
.stream(
269251
// every day
270252
CronStream::new_with_timezone(
@@ -275,7 +257,7 @@ async fn main() -> Result<()> {
275257
)
276258
.layer(ApalisTraceLayer::new())
277259
.data(media_service_2.clone())
278-
.build_fn(media_jobs),
260+
.build_fn(background_jobs),
279261
)
280262
.register_with_count(
281263
1,

apps/backend/src/miscellaneous/resolver.rs

+7-15
Original file line numberDiff line numberDiff line change
@@ -7061,20 +7061,8 @@ GROUP BY m.id;
70617061
Ok(())
70627062
}
70637063

7064-
pub async fn perform_user_jobs(&self) -> Result<()> {
7065-
tracing::debug!("Starting user jobs...");
7066-
7067-
tracing::trace!("Cleaning up user and metadata association");
7068-
self.cleanup_user_and_metadata_association().await?;
7069-
tracing::trace!("Removing old user summaries and regenerating them");
7070-
self.regenerate_user_summaries().await?;
7071-
7072-
tracing::debug!("Completed user jobs...");
7073-
Ok(())
7074-
}
7075-
7076-
pub async fn perform_media_jobs(&self) -> Result<()> {
7077-
tracing::debug!("Starting media jobs...");
7064+
pub async fn perform_background_jobs(&self) -> Result<()> {
7065+
tracing::debug!("Starting background jobs...");
70787066

70797067
tracing::trace!("Invalidating invalid media import jobs");
70807068
self.invalidate_import_jobs().await.unwrap();
@@ -7098,10 +7086,14 @@ GROUP BY m.id;
70987086
self.queue_notifications_for_released_media().await.unwrap();
70997087
tracing::trace!("Sending all pending notifications");
71007088
self.send_pending_notifications().await.unwrap();
7089+
tracing::trace!("Cleaning up user and metadata association");
7090+
self.cleanup_user_and_metadata_association().await?;
7091+
tracing::trace!("Removing old user summaries and regenerating them");
7092+
self.regenerate_user_summaries().await?;
71017093
tracing::trace!("Removing useless data");
71027094
self.remove_useless_data().await?;
71037095

7104-
tracing::debug!("Completed media jobs...");
7096+
tracing::debug!("Completed background jobs...");
71057097
Ok(())
71067098
}
71077099

docs/includes/backend-config-schema.yaml

-5
Original file line numberDiff line numberDiff line change
@@ -155,11 +155,6 @@ scheduler:
155155
# @envvar SCHEDULER_RATE_LIMIT_NUM
156156
rate_limit_num: 5
157157

158-
# Deploy a job every x hours that performs user cleanup and summary
159-
# calculation.
160-
# @envvar SCHEDULER_USER_CLEANUP_EVERY
161-
user_cleanup_every: 12
162-
163158
# Settings related to server.
164159
server:
165160
# The path where the config file will be written once the server boots up.

libs/config/src/lib.rs

-4
Original file line numberDiff line numberDiff line change
@@ -313,10 +313,6 @@ pub struct SchedulerConfig {
313313
/// the background.
314314
#[setting(default = 5)]
315315
pub rate_limit_num: u64,
316-
/// Deploy a job every x hours that performs user cleanup and summary
317-
/// calculation.
318-
#[setting(default = 12)]
319-
pub user_cleanup_every: i32,
320316
}
321317

322318
#[derive(Debug, Serialize, Deserialize, Clone, Config)]

0 commit comments

Comments
 (0)