MCPcopy Create free account
hub / github.com/cloudconvert/cloudconvert-cli / startJobStatusPolling

Function startJobStatusPolling

src/job.ts:234–273  ·  view source on GitHub ↗
(
  jobId: string,
  cloudconvert: CloudConvertClient,
  logger: Logger,
  callbacks: JobCompletionCallbacks
)

Source from the content-addressed store, hash-verified

232}
233
234function startJobStatusPolling(
235 jobId: string,
236 cloudconvert: CloudConvertClient,
237 logger: Logger,
238 callbacks: JobCompletionCallbacks
239): () => void {
240 let polling = false;
241 const pollInterval = setInterval(() => {
242 void pollJobStatus();
243 }, JOB_STATUS_POLL_INTERVAL_MS);
244 pollInterval.unref?.();
245
246 async function pollJobStatus(): Promise<void> {
247 if (callbacks.isSettled() || polling) {
248 return;
249 }
250
251 polling = true;
252 try {
253 const currentJob = await cloudconvert.jobs.get(jobId);
254
255 if (currentJob.status === 'finished') {
256 callbacks.finishJob(currentJob);
257 return;
258 }
259
260 if (currentJob.status === 'error' || currentJob.status === 'failed') {
261 callbacks.failJob(currentJob);
262 }
263 } catch (error) {
264 if (!callbacks.isSettled() && error instanceof Error) {
265 logger.error(`Job status polling failed: ${error.message}`);
266 }
267 } finally {
268 polling = false;
269 }
270 }
271
272 return () => clearInterval(pollInterval);
273}
274
275function subscribeToJobEvents(
276 jobId: string,

Callers 1

waitForCompletionFunction · 0.85

Calls 1

pollJobStatusFunction · 0.85

Tested by

no test coverage detected