Age | Commit message (Collapse) | Author |
|
|
|
While waiting for a result, if the process is not alive, it returns an
error status and restarts another process to continue working.
|
|
It is now much simpler. There are no xmlrpc servers anymore instead the
tornado server takes a post request to submit a job asynchronously and
the results are added to a shared dictionary. A get request can be used
to check the status of a submitted job. This allows the submission and
checking of code to be completely async and will make the application a
lot more scalable.
|
|
|
|
- Error are sent as list
- Error are None if answer is fully correct
- Error is rendered as in grade user and code questions as neat CSS divs
- Fix corresponding test cases
- Fix get_question answers in models.py
|
|
|
|
|
|
|
|
partial grading
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Add to travis
|
|
With the previous XMLRPC based server, an XMLRPC server would respond to
a request for an available port. This does not work as the server can
only take about 2 simultaneous connections. The server pool now uses a
HTTP server via tornado which works extremely well. The django code
should not change at all as this is an internal change. This change
should make the code server far more robust and work for a very large
number of simultaneous users.
The http server also has a simple status page to indicate the current
load. This will not be correct on OSX due to limitations of the
multi-processing Queue implementation on OSX.
|
|
This currently fails when multiple threads ask for a code evaluation at
the same time.
|