Bird
Raised Fist0
Flaskframework~10 mins

Task queue concept in Flask - Interactive Code Practice

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

Complete the code to import the Flask class.

Flask
from flask import [1]
Drag options to blanks, or click blank then click option'
AQueue
BFlask
CTask
DRequest
Attempts:
3 left
💡 Hint
Common Mistakes
Importing Queue or Task instead of Flask.
Using lowercase flask instead of Flask.
2fill in blank
medium

Complete the code to create a new Flask app instance.

Flask
app = [1](__name__)
Drag options to blanks, or click blank then click option'
AQueue
BRequest
CTask
DFlask
Attempts:
3 left
💡 Hint
Common Mistakes
Using Queue or Task instead of Flask to create the app.
Forgetting to pass __name__ as argument.
3fill in blank
hard

Fix the error in the code to define a background task function.

Flask
@app.task
def [1]():
    print('Task running')
Drag options to blanks, or click blank then click option'
Arun_task
Btask_run
Ctask
Dbackground
Attempts:
3 left
💡 Hint
Common Mistakes
Using names that do not match the decorator or cause confusion.
Using invalid function names.
4fill in blank
hard

Fill both blanks to create a task queue and add a task.

Flask
from celery import [1]
app = [2]('tasks')
Drag options to blanks, or click blank then click option'
ACelery
BFlask
CQueue
DTask
Attempts:
3 left
💡 Hint
Common Mistakes
Using Flask or Queue instead of Celery.
Not matching import and instantiation names.
5fill in blank
hard

Fill all three blanks to define and call a background task.

Flask
@app.task
def [1](x, y):
    return x [2] y
result = [3].delay(4, 5)
Drag options to blanks, or click blank then click option'
Aadd
B+
Dtask
Attempts:
3 left
💡 Hint
Common Mistakes
Mismatching function name and call.
Using wrong operator inside the function.

Practice

(1/5)
1. What is the main purpose of using a task queue in a Flask application?
easy
A. To serve static files faster
B. To run slow or long tasks in the background without blocking the main app
C. To handle user authentication securely
D. To speed up the Flask app by caching all responses

Solution

  1. Step 1: Understand task queue role

    Task queues let slow jobs run separately from the main app, so the app stays responsive.
  2. Step 2: Identify the correct purpose

    Running slow tasks in the background matches the main purpose of task queues.
  3. Final Answer:

    To run slow or long tasks in the background without blocking the main app -> Option B
  4. Quick Check:

    Task queue purpose = background slow jobs [OK]
Hint: Task queues handle slow jobs outside main app flow [OK]
Common Mistakes:
  • Confusing task queues with caching
  • Thinking task queues handle authentication
  • Assuming task queues speed up static file serving
2. Which of the following is the correct way to enqueue a task using rq in Flask?
easy
A. queue.enqueue(my_task, arg1, arg2)
B. queue.run(my_task, arg1, arg2)
C. queue.start(my_task, arg1, arg2)
D. queue.execute(my_task, arg1, arg2)

Solution

  1. Step 1: Recall rq enqueue method

    In rq, tasks are added to the queue using the enqueue() method.
  2. Step 2: Match method to options

    Only queue.enqueue(my_task, arg1, arg2) uses enqueue() correctly with task and arguments.
  3. Final Answer:

    queue.enqueue(my_task, arg1, arg2) -> Option A
  4. Quick Check:

    rq enqueue method = enqueue() [OK]
Hint: Use enqueue() to add tasks to rq queue [OK]
Common Mistakes:
  • Using run(), start(), or execute() instead of enqueue()
  • Forgetting to pass task arguments
  • Calling enqueue on wrong object
3. Given this Flask rq task code snippet:
from rq import Queue
from redis import Redis

redis_conn = Redis()
queue = Queue(connection=redis_conn)

def add(x, y):
    return x + y

job = queue.enqueue(add, 3, 4)
print(job.result)

What will be printed immediately after running this code?
medium
A. None
B. 7
C. Error: job.result not available
D. 3 + 4

Solution

  1. Step 1: Understand rq job processing

    When a job is enqueued, it runs asynchronously. The result is not ready immediately.
  2. Step 2: Check job.result value right after enqueue

    Immediately after enqueue, job.result is None because the worker hasn't processed it yet.
  3. Final Answer:

    None -> Option A
  4. Quick Check:

    job.result before worker runs = None [OK]
Hint: job.result is None until worker finishes task [OK]
Common Mistakes:
  • Assuming job.result is ready immediately
  • Expecting synchronous return value
  • Confusing job.result with function return
4. You wrote this code to enqueue a task in Flask with rq:
queue.enqueue(my_task, arg1, arg2)

But the task never runs. What is the most likely reason?
medium
A. Redis server is not installed
B. The task function my_task is missing
C. You forgot to start the rq worker process
D. You used enqueue instead of run

Solution

  1. Step 1: Check rq worker role

    rq worker must be running to process tasks from the queue.
  2. Step 2: Identify missing worker

    If tasks never run, the worker process is likely not started.
  3. Final Answer:

    You forgot to start the rq worker process -> Option C
  4. Quick Check:

    Worker must run to process tasks [OK]
Hint: Always run rq worker to process queued tasks [OK]
Common Mistakes:
  • Assuming enqueue runs task immediately
  • Not starting rq worker process
  • Confusing Redis installation with worker running
5. You want to run a slow image processing function in the background using Flask and rq. Which combination correctly sets up the task queue and worker?
hard
A. Install Redis, but only enqueue tasks; worker runs automatically without command
B. Create Flask app, call task function directly; no need for Redis or worker
C. Use Flask's built-in threading to run task; no Redis or rq needed
D. Create Redis connection, create rq Queue with it, enqueue task; run rq worker in terminal

Solution

  1. Step 1: Setup Redis and rq Queue

    You must create a Redis connection and pass it to rq Queue to enqueue tasks properly.
  2. Step 2: Run rq worker separately

    The rq worker must be started manually in the terminal to process queued tasks.
  3. Final Answer:

    Create Redis connection, create rq Queue with it, enqueue task; run rq worker in terminal -> Option D
  4. Quick Check:

    Redis + rq Queue + worker process = correct setup [OK]
Hint: Redis + rq Queue + manual worker run = background tasks [OK]
Common Mistakes:
  • Calling task function directly instead of enqueueing
  • Assuming worker runs automatically
  • Using Flask threading instead of task queue
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