-
Notifications
You must be signed in to change notification settings - Fork 222
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
Feature: Autograding Waiting Screen #1167
Conversation
Currently, this information is shown at the bottom of the history handin page. (Which will change based on front end work). The code with this information is available through app/views/jobs_queues/_jobs_queue.html.erb (Waiting Jobs are sent to tango in decreasing order of jobID even though they are misordered here. This list is just meant to showcase the jobIDs available.) All this information is instantaneously refreshed every 5 seconds as can be seen through the "time created" field. |
…e no assignments on queue
DescriptionThis PR introduces the autograding waiting screen feature into the handin history page for autograded assignments. The main purpose of having such an autograding waiting screen is such that
This features introduces two new complexities. It uses rufus-scheduler to ping the Tango server on an interval of 5 seconds. It also uses websockets to deliver the information to the student's waiting screens. Motivation and ContextThis enhancement is a result from our team's user interviews with professors and students who uses Autolab, who felt that
It should also address the following two issues: #965 and #33 How Has This Been Tested?This feature has been tested in the following manners on a setup that uses latest Tango 2 (w/ python3):
In Tango, when I was testing, I set the Screenshots (if appropriate):Banner on the assignment page if something is being autograded Types of changes
Checklist:
|
So, I'm really only looking at this because of concerns about rufus-scheduler on the Carnegie Mellon deployment (we use passenger, and the pointers on the rufus-scheduler page about working with passenger do not fill me with confidence), but I'm having trouble figuring out all the moving parts. From what I can see, the rufus-scheduler is set up when assessments_controller is loaded (which means on passenger, multiple times). What cleans up the JobsQueue entries once they are no longer needed? |
Hi @cg2v I think your concerns are valid, and I am currently looking to see how we can best change to an implementation that likely do not use rufus-scheduler. Edit: Further looking into the issue, it seems that using issue with using rufus-scheduler with Phusion Passenger can be addressed with using
However, I don't think I have sufficient experience with production systems to understand the drawbacks (aside from the fact that people who deployed autolab has to change deployment settings perhaps), but @cg2v do you foresee other critical issues that might arise? |
end | ||
|
||
# Build formatted lists of the running, waiting | ||
unless raw_live_jobs.nil? || raw_live_jobs.empty? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Superseded by #1645 |
Backend work for obtaining current job queue number from tango. Utilized Action Cable to deal with WebSockets in Rails which sends the info to _jobs_queue.html.erb a partial html file used in history.html. WebSockets send this information every 5 seconds through a 'rufus-scheduler'.