Bird
Raised Fist0
NestJSframework~10 mins

Job options (delay, attempts, priority) in NestJS - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to add a delay of 5000 milliseconds to the job.

NestJS
this.queue.add('sendEmail', data, { delay: [1] });
Drag options to blanks, or click blank then click option'
A5
B5000
C500
D50
Attempts:
3 left
💡 Hint
Common Mistakes
Using 5 instead of 5000, which means 5 milliseconds, too short.
Using 500 which is 0.5 seconds, not 5 seconds.
2fill in blank
medium

Complete the code to set the job to retry 3 times on failure.

NestJS
this.queue.add('processData', data, { attempts: [1] });
Drag options to blanks, or click blank then click option'
A3
B5
C1
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Setting attempts to 0 which disables retries.
Setting attempts to 1 which means only one try, no retries.
3fill in blank
hard

Fix the error in setting the job priority to high (1 is highest).

NestJS
this.queue.add('generateReport', data, { priority: [1] });
Drag options to blanks, or click blank then click option'
A1
B5
C10
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Using 0 which is invalid priority.
Using 10 which is low priority.
4fill in blank
hard

Fill both blanks to add a job with 2 attempts and 3 seconds delay.

NestJS
this.queue.add('cleanup', data, { attempts: [1], delay: [2] });
Drag options to blanks, or click blank then click option'
A2
B3
C3000
D2000
Attempts:
3 left
💡 Hint
Common Mistakes
Confusing delay units and using 3 instead of 3000.
Setting attempts to 3 instead of 2.
5fill in blank
hard

Fill all three blanks to add a job with high priority (1), 4 attempts, and 1 second delay.

NestJS
this.queue.add('syncData', data, { priority: [1], attempts: [2], delay: [3] });
Drag options to blanks, or click blank then click option'
A1
B4
C1000
D5
Attempts:
3 left
💡 Hint
Common Mistakes
Using 5 for priority which is low priority.
Using 1 for attempts which means only one try.
Using 1 for delay which is 1 millisecond, not 1 second.

Practice

(1/5)
1. In NestJS job queues, what does the delay option do when adding a job?
easy
A. It sets the maximum number of retries for the job.
B. It postpones the job execution by a specified time.
C. It assigns the job a priority level.
D. It cancels the job immediately.

Solution

  1. Step 1: Understand the purpose of delay in job options

    The delay option is used to postpone when a job starts running after being added to the queue.
  2. Step 2: Compare with other options

    attempts controls retries, priority controls order, so they do not delay execution.
  3. Final Answer:

    It postpones the job execution by a specified time. -> Option B
  4. Quick Check:

    delay = postpone job start [OK]
Hint: Delay means wait before running the job [OK]
Common Mistakes:
  • Confusing delay with attempts (retry count)
  • Thinking delay sets job priority
  • Assuming delay cancels the job
2. Which of the following is the correct way to add a job with 3 retry attempts and a 5-second delay in NestJS?
easy
A. queue.add('jobName', data, { retries: 3, wait: 5000 })
B. queue.add('jobName', data, { delay: 3, attempts: 5000 })
C. queue.add('jobName', data, { attempts: '3', delay: '5000' })
D. queue.add('jobName', data, { attempts: 3, delay: 5000 })

Solution

  1. Step 1: Identify correct option keys and values

    The correct keys are attempts for retries and delay for postponing in milliseconds.
  2. Step 2: Check value types and order

    Values must be numbers, not strings. queue.add('jobName', data, { attempts: 3, delay: 5000 }) uses correct keys and numeric values.
  3. Final Answer:

    queue.add('jobName', data, { attempts: 3, delay: 5000 }) -> Option D
  4. Quick Check:

    Correct keys and numeric values = queue.add('jobName', data, { attempts: 3, delay: 5000 }) [OK]
Hint: Use numeric attempts and delay keys exactly [OK]
Common Mistakes:
  • Using wrong keys like retries or wait
  • Passing numbers as strings
  • Swapping delay and attempts values
3. Given this code snippet, what will be the order of job execution?
queue.add('job1', data1, { priority: 2 });
queue.add('job2', data2, { priority: 1 });
queue.add('job3', data3, { priority: 3 });
medium
A. job2, job1, job3
B. job3, job1, job2
C. job1, job2, job3
D. job1, job3, job2

Solution

  1. Step 1: Understand priority values

    Lower priority number means higher priority and runs first.
  2. Step 2: Order jobs by priority

    job2 has priority 1 (highest), job1 priority 2, job3 priority 3 (lowest).
  3. Final Answer:

    job2, job1, job3 -> Option A
  4. Quick Check:

    Lower priority number runs first = job2, job1, job3 [OK]
Hint: Lower priority number runs first [OK]
Common Mistakes:
  • Assuming higher number means higher priority
  • Ignoring priority and using add order
  • Mixing up job names and priorities
4. Identify the error in this job addition code:
queue.add('emailJob', data, { delay: '1000', attempts: 5 });
medium
A. The attempts option is invalid and should be removed.
B. The job name must be an object, not a string.
C. The delay value should be a number, not a string.
D. The data parameter is missing.

Solution

  1. Step 1: Check types of job options

    delay expects a number in milliseconds, but here it is a string '1000'.
  2. Step 2: Validate other parameters

    attempts is valid, job name as string is correct, data is present.
  3. Final Answer:

    The delay value should be a number, not a string. -> Option C
  4. Quick Check:

    delay must be number, not string [OK]
Hint: Delay must be number type, not string [OK]
Common Mistakes:
  • Passing delay as string instead of number
  • Removing valid attempts option
  • Thinking job name must be object
5. You want to add a job that should run after 10 seconds, retry up to 4 times if it fails, and run before other jobs with default priority. Which job options object is correct?
hard
A. { delay: 10000, attempts: 4 }
B. { delay: 10000, attempts: 4, priority: 1 }
C. { attempts: 4, priority: 0 }
D. { delay: 10000, priority: 0 }

Solution

  1. Step 1: Understand default priority

    If priority is not set, jobs have default priority (usually 0 or normal). To run before others, priority must be lower number.
  2. Step 2: Check options for delay and attempts

    Delay 10000 ms (10 seconds) and attempts 4 are required. Priority is optional if default is acceptable.
  3. Step 3: Analyze options

    { delay: 10000, attempts: 4, priority: 1 } sets priority to 1 (lower priority than default 0), so it runs after default priority jobs. { delay: 10000, attempts: 4 } omits priority, so default priority applies, running before jobs with priority 1.
  4. Final Answer:

    { delay: 10000, attempts: 4 } -> Option A
  5. Quick Check:

    Delay + attempts with default priority = { delay: 10000, attempts: 4 } [OK]
Hint: Omit priority for default; delay and attempts must be set [OK]
Common Mistakes:
  • Setting priority higher than default to run first
  • Forgetting delay or attempts
  • Assuming priority 0 is higher than 1
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard