Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Celery task queue as replacement for GraderExecutor #200

Open
meffmadd opened this issue Jan 31, 2024 · 0 comments
Open

Implement Celery task queue as replacement for GraderExecutor #200

meffmadd opened this issue Jan 31, 2024 · 0 comments
Assignees
Labels
enhancement New feature or request service Issue related to grader-service
Milestone

Comments

@meffmadd
Copy link
Member

Is your feature request related to a problem? Please describe.
GraderExecutor is a simple task queue based on an asyncio.Queue, which is very basic. By switching to Celery we get all kinds of advantages and features like monitoring, timeouts, etc.

Describe the solution you'd like
Right now a task is a Callable that is submitted to the GraderExecutor, where the Callable is the start method from the auto-grading executors like LocalAutogradeExecutor. This would of course not work for a Celery task since the function would have to be serialized etc.

Instead, the task should to be created by the same inputs as the respective handlers: lecture_id, assignment_id, and sub_id. The task then needs access to an SQLAlchemy session since we need the submission for the grading. From there, instead of putting the start method in the queue, it can be directly executed.

@meffmadd meffmadd added enhancement New feature or request service Issue related to grader-service labels Jan 31, 2024
@meffmadd meffmadd self-assigned this Feb 5, 2024
@meffmadd meffmadd added this to the 0.5.0 milestone Mar 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request service Issue related to grader-service
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

1 participant