X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fjobs%2Fjob-scheduler.ts;h=88fe8a4a3a47700af4a45971292092592ec0d22b;hb=3fd3ab2d34d512b160a5e6084d7609be7b4f4452;hp=62ce6927eaf08d693b933fa7b422f8cb25ba5f6d;hpb=79d5caf994edd87ad721994490f10677be277497;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/jobs/job-scheduler.ts b/server/lib/jobs/job-scheduler.ts index 62ce6927e..88fe8a4a3 100644 --- a/server/lib/jobs/job-scheduler.ts +++ b/server/lib/jobs/job-scheduler.ts @@ -2,8 +2,8 @@ import { AsyncQueue, forever, queue } from 'async' import * as Sequelize from 'sequelize' import { JobCategory } from '../../../shared' import { logger } from '../../helpers' -import { database as db, JOB_STATES, JOBS_FETCH_LIMIT_PER_CYCLE, JOBS_FETCHING_INTERVAL } from '../../initializers' -import { JobInstance } from '../../models' +import { JOB_STATES, JOBS_FETCH_LIMIT_PER_CYCLE, JOBS_FETCHING_INTERVAL } from '../../initializers' +import { JobModel } from '../../models/job/job' export interface JobHandler { process (data: object, jobId: number): Promise @@ -24,12 +24,12 @@ class JobScheduler { logger.info('Jobs scheduler %s activated.', this.jobCategory) - const jobsQueue = queue(this.processJob.bind(this)) + const jobsQueue = queue(this.processJob.bind(this)) // Finish processing jobs from a previous start const state = JOB_STATES.PROCESSING try { - const jobs = await db.Job.listWithLimitByCategory(limit, state, this.jobCategory) + const jobs = await JobModel.listWithLimitByCategory(limit, state, this.jobCategory) this.enqueueJobs(jobsQueue, jobs) } catch (err) { @@ -45,7 +45,7 @@ class JobScheduler { const state = JOB_STATES.PENDING try { - const jobs = await db.Job.listWithLimitByCategory(limit, state, this.jobCategory) + const jobs = await JobModel.listWithLimitByCategory(limit, state, this.jobCategory) this.enqueueJobs(jobsQueue, jobs) } catch (err) { @@ -70,14 +70,14 @@ class JobScheduler { const options = { transaction } - return db.Job.create(createQuery, options) + return JobModel.create(createQuery, options) } - private enqueueJobs (jobsQueue: AsyncQueue, jobs: JobInstance[]) { + private enqueueJobs (jobsQueue: AsyncQueue, jobs: JobModel[]) { jobs.forEach(job => jobsQueue.push(job)) } - private async processJob (job: JobInstance, callback: (err: Error) => void) { + private async processJob (job: JobModel, callback: (err: Error) => void) { const jobHandler = this.jobHandlers[job.handlerName] if (jobHandler === undefined) { const errorString = 'Unknown job handler ' + job.handlerName + ' for job ' + job.id @@ -110,7 +110,7 @@ class JobScheduler { return callback(null) } - private async onJobError (jobHandler: JobHandler, job: JobInstance, err: Error) { + private async onJobError (jobHandler: JobHandler, job: JobModel, err: Error) { job.state = JOB_STATES.ERROR try { @@ -121,7 +121,7 @@ class JobScheduler { } } - private async onJobSuccess (jobHandler: JobHandler, job: JobInstance, jobResult: T) { + private async onJobSuccess (jobHandler: JobHandler, job: JobModel, jobResult: T) { job.state = JOB_STATES.SUCCESS try {