aboutsummaryrefslogtreecommitdiff
path: root/web/app/job_manager.py
blob: 3d588a6e26807a9ed1839cc65adb3ec28252b04f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from rq import Queue
from rq.job import Job
from redis import Redis
from .jobs.scrape_cases import scrape_cases

class JobManager:
    def __init__(self):
        self.redis = Redis()
        self.q = Queue(connection=self.redis)

    def enqueue_scrape(self, name, acts, sections, state_code):
        # 4 hour timeout
        return self.q.enqueue(
            scrape_cases,
            name,
            acts,
            sections,
            state_code,
            job_timeout=14400
        )

    def get_jobs(self):
        queued_jobs = self.q.get_jobs()

        started_job_ids = self.q.started_job_registry.get_job_ids()
        started_jobs = [Job.fetch(job_id, connection=self.redis) for job_id in started_job_ids]

        return queued_jobs + started_jobs