Some tasks take more than a few seconds to complete, especially in bigger schools. Users were not able to use the application while reports were being generated. Downloads were timing out in as little as 10 seconds. Such tasks should be done asynchronously to allow users do something else, or wait for them to be completed if they wish so.
Celery is an asynchronous task queue that executes long running tasks. SchoolTool and its plugins now use it to do the following tasks in background:
Messages are sent when a task is completed. They are available from the Home page. A notification with the number of new messages is displayed near the person’s name in the top right of the page.
There are now 4 processes, controlled by a supervisor daemon:
- schooltool - schooltool web application
- zeo - ZEO server allows many clients to use the same ZODB storage
- celery_report - a celery task queue that generates reports
- redis - a simple key-value database for celery
New make targets:
- start - start all processes as daemons
- stop - stop all processes
- restart - restart schooltool and celery processes
- rerun - stop schooltool and run again in the foreground. restarts celery
- status - status of all processes
Redis server is written in C and needs to be installed separately. On Ubuntu or Debian:
$ sudo apt-get install redis-server
Instances have to be updated to run this version. If you run from a sandbox:
$ bin/make-schooltool-instance instance
Ubuntu package schooltool contains updated configuration files. If they have been modified, you may be asked how to handle the conflicts. So it is recommended to upgrade it in the terminal:
$ sudo apt-get update
$ sudo apt-get install schooltool
Answer Y (install package maintainer’s version) to all questions to get the new files. A backup of modified files is made with a suffix .dpkg-old, compare them and make the same changes in the new files:
$ cd /etc/schooltool/standard
$ diff -u paste.ini.dpkg-old paste.ini
SchoolTool 2.6 is available for
Additionally, there are daily builds from trunk branches of actively developed projects in the trunk PPA.
Final release for Saucy
Saucy Beta 2
Saucy Beta
Saucy alpha