Judge0 API v1.12.0-extra Release Notes
Release Date: 2020-10-18 // over 3 years ago-
v1.12.0-extra (2020-10-18)
🆕 New Features
- ➕ Added support for invalidating statistics cache using the
invalidate_cache
query parameter.- Commits: @561c2a30
- Added rake task
judge0:run_in_queue
to manually run submissions that might have stuck in theIn Queue
state.- Commits: @c3b87d23
- Added support for specifying
CALLBACKS_MAX_TRIES
andCALLBACKS_TIMEOUT
. This is a global configuration that applies to all submissions that have defined webhooks (HTTP callbacks).- Commits: @c4bb76ec
- Added support for submission caching to reduce the number of unnecessary database hits. Cache duration can be controlled with the
SUBMISSION_CACHE_DURATION
variable which is currently set to 1 second by default. Submissions are only cached forGET /submissions/<token>
route. Cache files are written to the server's file system and are automatically cleared every day at midnight. This is the first step toward more serious submission caching in the future.
👌 Improvements
- ⚡️ Update PostgreSQL to 13.0 and Redis to 6.0.
- ⏱ Reschedule failed jobs after 0.1 seconds with 100 attempts.
- 👷 Send only submission ID to the worker and not the whole serialized submission.
- Automatically restart Judge0 server without the need for Docker restart policies. Use the
RESTART_MAX_TRIES
variable to specify the maximum number of restart tries.
🐛 Bug Fixes
- 🛠 Fixed a bug in the
is_project
method of submission model where an exception was raised and not handled properly due to unknown language.- Commits: @6426ac61
Other Changes
- 🐳 Use Docker volumes for storing Postgres and Redis data instead of mounting directories. This is now the new recommended setting.
- Commits: @600f5aaa
- ➕ Added Resque Web to the development stack.
- Commits: @3762a635
- 📚 Changed binding ports for Nginx and documentation server in the development stack. Nginx is now bound to port 80, and the development server to port 3001.
- Commits: @3762a635
- ✂ Removed port bindings of Postgres and Redis in the development stack.
- Commits: @3762a635
- ➕ Added PgBouncer to the development stack for testing and experimenting.
- Commits: @24b3227a
- Changed recommended values for
POSTGRES_DB
andPOSTGRES_USER
. Both are nowjudge0
.- Commits: @745f4455
🚀 Deployment Procedure
👍 Judge0 is collecting telemetry data to help understand how to improve the product and to better understand how Judge0 is used in various production environments. Read more about telemetry here.
🐧 Please note that Judge0 has only been tested on Linux and macOS , and might not work on Windows, thus we do not provide support for it.
With HTTP
🐳 1. Install Docker and Docker Compose. 🚀 2. Download and extract release archive:
wget https://github.com/judge0/judge0/releases/download/v1.12.0-extra/judge0-v1.12.0-extra.zip unzip judge0-v1.12.0-extra.zip
Run all services and wait a few seconds until everything is initialized:
cd judge0-v1.12.0-extra docker-compose up -d db redis sleep 10s docker-compose up -d sleep 5s
Your instance of Judge0 v1.12.0-extra is now available at
http://<IP ADDRESS OF YOUR SERVER>
.
With HTTPS (SSL/TLS)
🐳 1. Install Docker and Docker Compose. 🚀 2. Download and extract release archive:
wget https://github.com/judge0/judge0/releases/download/v1.12.0-extra/judge0-v1.12.0-extra-https.zip unzip judge0-v1.12.0-extra-https.zip
Change directory to
judge0-v1.12.0-extra-https
:cd judge0-v1.12.0-extra-https
Edit
docker-compose.yml
and change variablesVIRTUAL_HOST
,LETSENCRYPT_HOST
andLETSENCRYPT_EMAIL
.Run all services and wait a few seconds until everything is initialized:
docker-compose up -d db redis sleep 10s docker-compose up -d sleep 5s
Your instance of Judge0 v1.12.0-extra is now available at
https://<YOUR DOMAIN>
.
- ➕ Added support for invalidating statistics cache using the