}
async function waitJobs (serversArg: ServerInfo[] | ServerInfo) {
+ const pendingJobWait = process.env.NODE_PENDING_JOB_WAIT ? parseInt(process.env.NODE_PENDING_JOB_WAIT, 10) : 2000
let servers: ServerInfo[]
if (Array.isArray(serversArg) === false) servers = [ serversArg as ServerInfo ]
else servers = serversArg as ServerInfo[]
const states: JobState[] = [ 'waiting', 'active', 'delayed' ]
- const tasks: Promise<any>[] = []
- let pendingRequests: boolean
+ let pendingRequests = false
- do {
+ function tasksBuilder () {
+ const tasks: Promise<any>[] = []
pendingRequests = false
// Check if each server has pending request
}
}
- await Promise.all(tasks)
+ return tasks
+ }
+
+ do {
+ await Promise.all(tasksBuilder())
// Retry, in case of new jobs were created
if (pendingRequests === false) {
- await wait(1000)
-
- await Promise.all(tasks)
+ await wait(pendingJobWait)
+ await Promise.all(tasksBuilder())
}
if (pendingRequests) {