X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=shared%2Fserver-commands%2Fserver%2Fjobs.ts;h=ff309806351c9e088b305236b447246bc6818f11;hb=813f37438a1043876defb442c0b3eade198b3ca2;hp=fc65a873b10e177cf2c60f07859f32a7c7c43b0d;hpb=c3edc5b074aa4bb1861ed0a94d3713808e87170f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/shared/server-commands/server/jobs.ts b/shared/server-commands/server/jobs.ts index fc65a873b..ff3098063 100644 --- a/shared/server-commands/server/jobs.ts +++ b/shared/server-commands/server/jobs.ts @@ -1,10 +1,18 @@ import { expect } from 'chai' import { wait } from '@shared/core-utils' -import { JobState, JobType } from '../../models' +import { JobState, JobType, RunnerJobState } from '../../models' import { PeerTubeServer } from './server' -async function waitJobs (serversArg: PeerTubeServer[] | PeerTubeServer, skipDelayed = false) { +async function waitJobs ( + serversArg: PeerTubeServer[] | PeerTubeServer, + options: { + skipDelayed?: boolean // default false + runnerJobs?: boolean // default false + } = {} +) { + const { skipDelayed = false, runnerJobs = false } = options + const pendingJobWait = process.env.NODE_PENDING_JOB_WAIT ? parseInt(process.env.NODE_PENDING_JOB_WAIT, 10) : 250 @@ -26,7 +34,8 @@ async function waitJobs (serversArg: PeerTubeServer[] | PeerTubeServer, skipDela // Check if each server has pending request for (const server of servers) { for (const state of states) { - const p = server.jobs.list({ + + const jobPromise = server.jobs.list({ state, start: 0, count: 10, @@ -39,17 +48,29 @@ async function waitJobs (serversArg: PeerTubeServer[] | PeerTubeServer, skipDela } }) - tasks.push(p) + tasks.push(jobPromise) } - const p = server.debug.getDebug() + const debugPromise = server.debug.getDebug() .then(obj => { if (obj.activityPubMessagesWaiting !== 0) { pendingRequests = true } }) + tasks.push(debugPromise) + + if (runnerJobs) { + const runnerJobsPromise = server.runnerJobs.list({ count: 100 }) + .then(({ data }) => { + for (const job of data) { + if (job.state.id !== RunnerJobState.COMPLETED) { + pendingRequests = true + } + } + }) + tasks.push(runnerJobsPromise) + } - tasks.push(p) } return tasks