Running Update Summaries in background

Running the python manage.py update_summaries --fromstart can take a very long time, hours for implementations with large amounts of activity logs. So in most cases, when fully rebuilding the summary cache tables, it’s good to run this in the background, so you can log out of the terminal and leave running (eg overnight).

There are lots of different ways this can be done, but the method we usually use is to use the nohup command.

When the python virtual environment is enabled, run:

nohup python manage.py update_summaries --fromstart &

You can then log out of the terminal and the task will continue to run. To check the progress, you can run:

cat nohup.out

to see the output. After the task has succesfully finished you can delete the nohup.out file, if it’s left in the filesystem the next time nohup is run, then output will get appended to this file (not replaced).

If you see a message that “Oppia cron is already running” or similar, then likely the cron task is already running, or it has aborted abnormally (eg due to server reboot).

To allow running again, you will need to remove either the oppia_cron_lock and/or the oppia_summary_cron_lock from the Django admin pages, under the Settings model.