-
Notifications
You must be signed in to change notification settings - Fork 356
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Description
Description:
Implement a batch processing system using Celery to handle large file uploads and processing in the background.
Problem Statement:
- Users frequently upload large files, which can cause slowdowns and performance issues if processed synchronously.
- Without an asynchronous processing system, users may experience UI freezes or timeouts.
- The system should be able to efficiently handle large file processing while providing real-time status updates to users.
Use Cases:
- A user uploads a CSV file containing bulk data, and the system should process it asynchronously without affecting performance.
- Users should be able to check the status of their file processing task.
- Completed tasks should allow users to view/download processed data.
Describe the solution you'd like
Describe the Solution:
- Use Celery workers to offload processing of large files asynchronously.
- Implement a status tracking mechanism where users can query the state of their processing job.
- Once processing is complete, provide an option to download or view the processed output.
Acceptance Criteria:
- Given a user uploads a large file, when the upload is complete, then the file should be processed asynchronously in the background.
- Given an ongoing file processing task, when a user queries the task status, then the system should return the current state.
- Given a completed processing task, when the user checks the results, then they should be able to download/view the processed data.
TDD Test Cases:
- Test if the Celery worker correctly picks up the task.
- Test for handling large file uploads efficiently.
- Test failure scenarios and retries.
Describe alternatives you've considered
No response
Additional context
No response
Validations
- Follow our Code of Conduct.
- Read the Contributing Guidelines.
- Read the docs.
- Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request