Bird
Raised Fist0
Flaskframework~20 mins

Task status monitoring in Flask - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Task Status Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
Check Flask task status endpoint output
Given a Flask app with a background task status endpoint, what is the output when the task is still running?
Flask
from flask import Flask, jsonify
app = Flask(__name__)
tasks = {'task1': 'running'}

@app.route('/status/<task_id>')
def status(task_id):
    state = tasks.get(task_id, 'not found')
    return jsonify({'task_id': task_id, 'status': state})

# Request: GET /status/task1
A{"task_id": "task1", "status": "running"}
B{"task_id": "task1", "status": "completed"}
C{"task_id": "task1", "status": "failed"}
D{"task_id": "task1", "status": "not found"}
Attempts:
2 left
💡 Hint
Check the tasks dictionary for the status of 'task1'.
❓ Configuration
intermediate
2:00remaining
Configure Flask to run background tasks with status tracking
Which Flask extension and configuration is best suited to run background tasks and monitor their status?
AUse Flask-Mail to send task status emails
BUse Flask-Celery with Redis broker to run tasks and track status
CUse Flask-SocketIO with eventlet for real-time task status updates
DUse Flask-Login to authenticate task status requests
Attempts:
2 left
💡 Hint
Look for a task queue system integrated with Flask.
❓ Troubleshoot
advanced
2:00remaining
Troubleshoot missing task status updates in Flask app
A Flask app using Celery to run tasks does not update task status correctly. Which issue is most likely causing this?
ARedis server is running but not connected to Flask app
BFlask app is missing @app.route decorators
CThe Celery worker is not running, so tasks never execute
DFlask debug mode is off
Attempts:
2 left
💡 Hint
If tasks never run, status won't update.
🔀 Workflow
advanced
3:00remaining
Order the steps to implement task status monitoring in Flask
Arrange these steps in the correct order to implement task status monitoring in a Flask app using Celery.
A1,3,2,4
B2,1,4,3
C3,1,2,4
D1,2,3,4
Attempts:
2 left
💡 Hint
Setup first, then task, then status route, then run worker.
✅ Best Practice
expert
3:00remaining
Choose the best practice for scalable task status monitoring in Flask
Which approach is best for scalable and reliable task status monitoring in a Flask app with many concurrent tasks?
AUse a persistent external store like Redis or database to save task status
BLog task status only to Flask console logs
CSend task status updates via email to users
DStore task status in Flask app memory (global variable) for quick access
Attempts:
2 left
💡 Hint
Think about multiple workers and app instances.

Practice

(1/5)
1. What is the main purpose of task status monitoring in a Flask application?
easy
A. To store user login credentials securely
B. To speed up the Flask server response time
C. To let users see the progress of background jobs
D. To automatically restart the Flask app on errors

Solution

  1. Step 1: Understand task status monitoring

    Task status monitoring is about showing users how background jobs are progressing.
  2. Step 2: Identify the correct purpose

    Among the options, only letting users see job progress matches the purpose.
  3. Final Answer:

    To let users see the progress of background jobs -> Option C
  4. Quick Check:

    Task status monitoring = show job progress [OK]
Hint: Task status monitoring shows job progress to users [OK]
Common Mistakes:
  • Confusing task monitoring with server speed optimization
  • Thinking it manages user authentication
  • Assuming it restarts the app automatically
2. Which Flask route method is best to check the status of a running background task?
easy
A. POST
B. GET
C. DELETE
D. PUT

Solution

  1. Step 1: Understand HTTP methods for status checking

    GET is used to retrieve information without changing server state.
  2. Step 2: Match method to task status check

    Checking task status is a read operation, so GET is appropriate.
  3. Final Answer:

    GET -> Option B
  4. Quick Check:

    Check status = GET request [OK]
Hint: Use GET to fetch status without changing data [OK]
Common Mistakes:
  • Using POST which changes data
  • Choosing DELETE which removes data
  • Using PUT which updates data
3. Given this Flask code snippet, what will be the output when accessing /status/task1 if tasks = {'task1': 'running'}?
from flask import Flask, jsonify
app = Flask(__name__)
tasks = {'task1': 'running'}

@app.route('/status/<task_id>')
def status(task_id):
    state = tasks.get(task_id, 'not found')
    return jsonify({'task': task_id, 'status': state})
medium
A. {"task": "task1", "status": "running"}
B. {"task": "task1", "status": "not found"}
C. 404 Not Found error
D. SyntaxError

Solution

  1. Step 1: Check the tasks dictionary for 'task1'

    The dictionary has 'task1' with value 'running'.
  2. Step 2: Understand the route function output

    The function returns JSON with task id and its status from the dictionary.
  3. Final Answer:

    {"task": "task1", "status": "running"} -> Option A
  4. Quick Check:

    tasks['task1'] = running [OK]
Hint: Check dictionary key presence for status [OK]
Common Mistakes:
  • Assuming missing key returns error instead of default
  • Confusing JSON string with Python dict
  • Expecting 404 error without explicit handling
4. Identify the error in this Flask route for checking task status:
@app.route('/status/<task_id>')
def status(task_id):
    state = tasks[task_id]
    return {'task': task_id, 'status': state}
medium
A. Using tasks[task_id] without checking if key exists
B. Returning a dictionary instead of JSON response
C. Missing @app.route decorator
D. Incorrect route URL syntax

Solution

  1. Step 1: Analyze dictionary access

    Accessing tasks[task_id] without checking key causes KeyError if missing.
  2. Step 2: Confirm other parts are correct

    Returning dict is allowed by Flask; decorator and route syntax are correct.
  3. Final Answer:

    Using tasks[task_id] without checking if key exists -> Option A
  4. Quick Check:

    Direct dict access risks KeyError [OK]
Hint: Always check dict keys before access to avoid errors [OK]
Common Mistakes:
  • Thinking returning dict is wrong in Flask
  • Ignoring possible KeyError on missing keys
  • Assuming route decorator is missing
5. You want to monitor multiple background tasks in Flask and update their status safely. Which approach is best to store and update task states?
hard
A. Store task states only in local variables inside routes
B. Store task states in a file without synchronization
C. Use print statements to track task progress in console
D. Use a global dictionary with thread locks to store task states

Solution

  1. Step 1: Consider concurrency in Flask background tasks

    Multiple tasks may update states concurrently, so thread safety is needed.
  2. Step 2: Evaluate storage options

    Global dictionary with thread locks ensures safe updates; local vars or files without sync cause errors.
  3. Final Answer:

    Use a global dictionary with thread locks to store task states -> Option D
  4. Quick Check:

    Safe shared state needs locks [OK]
Hint: Use locks with shared dict for safe task status updates [OK]
Common Mistakes:
  • Using local variables which don't persist
  • Ignoring thread safety causing race conditions
  • Relying on print statements for monitoring
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