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
SchoolTool 2.6 is available for
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 dist-upgrade
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
To see the status of all 4 processes, use the status command of the init script:
$ sudo service schooltool status
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
Final release for Ubuntu 14.04 LTS
February bugfixes
Final release for Saucy
Saucy Beta 2
Saucy Beta
Saucy alpha