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

Description

Summary:

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

General Information
Submitted by:
Roland Mas
Date Submitted: 2010-05-28 12:19
Last Modified by: Nobody
Last Modified: 2017-11-02 20:00
Date Closed: 2015-03-16 14:00
Permalink: https://fusionforge.org/tracker/a_follow.php/147
Actions
Internal Fields
Data Type: Feature requests
Assigned to: Sylvain Beucler (beuc-inria)
State: Closed
Priority: 3
Extra Fields
Resolution:
Accepted
Difficulty:
Medium
Target release:
6.0
Follow-up tabs
Message  ↓
Date: 2015-03-16 14:00
Sender: Sylvain Beucler

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

No attached documents

No related commits.

Field Old Value Date By
status_idOpen2015-03-16 14:00
Sylvain Beucler
close_dateNone2015-03-16 14:00
Sylvain Beucler
summaryReplace cronjobs with a proper scheduler2014-05-16 13:01
Sylvain Beucler
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:01
Sylvain Beucler
assigned_tonone2014-04-21 11:32
Franck Villaume
Target releaseNone2014-04-18 18:02
Roland Mas

No relations found.