akvo.rsr.usecases.jobs.aggregation module

akvo.rsr.usecases.jobs.aggregation.base_get_jobs() QuerySet[source]
akvo.rsr.usecases.jobs.aggregation.email_job_owners(job: IndicatorPeriodAggregationJob, subject_template: str, message_template: str, reason: str | None = None)[source]
akvo.rsr.usecases.jobs.aggregation.execute_aggregation_jobs()[source]

Call the aggregation function for each aggregation job

akvo.rsr.usecases.jobs.aggregation.fail_dead_jobs() List[IndicatorPeriodAggregationJob][source]

Find jobs that are supposed to be running but with a dead process and fail them

akvo.rsr.usecases.jobs.aggregation.get_failed_jobs() QuerySet[source]
akvo.rsr.usecases.jobs.aggregation.get_finished_jobs() QuerySet[source]
akvo.rsr.usecases.jobs.aggregation.get_job_recipients(job: IndicatorPeriodAggregationJob)[source]
akvo.rsr.usecases.jobs.aggregation.get_maxxed_jobs() QuerySet[source]
akvo.rsr.usecases.jobs.aggregation.get_running_jobs() QuerySet[source]
akvo.rsr.usecases.jobs.aggregation.get_scheduled_jobs() QuerySet[source]
akvo.rsr.usecases.jobs.aggregation.handle_failed_jobs()[source]

Identify failed jobs and reschedule them up to max attempts

akvo.rsr.usecases.jobs.aggregation.run_aggregation(period: IndicatorPeriod)[source]
akvo.rsr.usecases.jobs.aggregation.schedule_aggregation_jobs(period: IndicatorPeriod) List[IndicatorPeriodAggregationJob][source]

Schedule a job for the period to be aggregated upwards if no job exists