Home My Page Projects FusionForge
Summary Activity Forums Tracker Lists News SCM Files Mediawiki Hudson/Jenkins

[#147] Improve reactivity: replace cronjobs with a scheduler

Date:
2010-05-28 12:19
Priority:
3
State:
Closed
Submitted by:
Roland Mas (lolando)
Assigned to:
Sylvain Beucler (beuc-inria)
Resolution:
Accepted
Difficulty:
Medium
Target release:
6.0
Summary:
Improve reactivity: replace cronjobs with a scheduler

Detailed description
FusionForge currently runs several cron jobs at varying intervals. Many of these jobs are only useful from time to time (creating a repository or a mailing list, changing the permissions, saving authorized_keys, and so on), yet they are run every hour or so. And when they would be useful, they may be delayed by up to an hour or so, which is frustrating.

It would be better to have a job scheduler where actions could be registered when needed and triggered as soon as needed. Actions such as "create repository for project $foo" (or update its permissions), "save SSH keys for that user", and so on. The scheduler would be idle most of the time, and only do what's needed.

The implementation has three parts: 1. defining an API for registering a job, 2. defining how the scheduler is awaken (inotify, cron every minute, signals/semaphores, etc.), 3. converting the current scripts to the new job system. Inspiration can certainly be taken from the Codendi implementation, since the idea is coming from there.

See also 2014 discussion at https://fusionforge.org/plugins/mediawiki/wiki/fusionforge/index.php/Meetings/2014#Reactivity
Message  ↓
Date: 2015-03-16 14:00
Sender: Sylvain Beucler

Implemented and merged.
https://fusionforge.org/plugins/mediawiki/wiki/fusionforge/index.php/Reactivity

Field Old Value Date By
status_idOpen2015-03-16 14:00beuc-inria
close_dateNone2015-03-16 14:00beuc-inria
summaryReplace cronjobs with a proper scheduler2014-05-16 13:01beuc-inria
detailsFusionForge currently runs several cron jobs at varying intervals. Many of these jobs are only useful from time to time (creating a repository or a mailing list, changing the permissions, saving authorized_keys, and so on), yet they are run every hour or so. And when they would be useful, they may be delayed by up to an hour or so, which is frustrating. It would be better to have a job scheduler where actions could be registered when needed and triggered as soon as needed. Actions such as "create repository for project $foo" (or update its permissions), "save SSH keys for that user", and so on. The scheduler would be idle most of the time, and only do what's needed. The implementation has three parts: 1. defining an API for registering a job, 2. defining how the scheduler is awaken (inotify, cron every minute, signals/semaphores, etc.), 3. converting the current scripts to the new job system. Inspiration can certainly be taken from the Codendi implementation, since the idea is coming from there.2014-05-16 13:01beuc-inria
assigned_tonone2014-04-21 11:32nerville
Target releaseNone2014-04-18 18:02lolando