Accéder au contenu.
Menu Sympa

fr - [sympa-fr] Re: task_models/sync_include.ttl.task - next(heure précise) vs next(ttl) [SOLUTION]

Objet : Pour les administrateurs de serveurs de listes utilisant le logiciel Sympa

Archives de la liste

Chronologique Discussions  
  • From: "Eddy Beliveau" <adresse@cachée>
  • To: <adresse@cachée>
  • Subject: [sympa-fr] Re: task_models/sync_include.ttl.task - next(heure précise) vs next(ttl) [SOLUTION]
  • Date: Mon, 29 Jan 2007 15:54:15 -0500

Bonjour,
J'ai modifié le script task_manager.pl de façon à permettre la variable 'tomorrow' représentant le prochain minuit.

Peut-être utile si on désire que la prochaine exécution se fasse à une heure précise PLUTOT qu'à un intervalle
comme actuellement.

On inclut cette variable dans /etc/sympa/list_task_models/sync_include.ttl.task

Cela fonctionne avec, par exemple :
next([tomorrow],INIT)
ou
next([tomorrow]+02h30min,INIT)
ou
next([tomorrow]+[list->ttl]sec,INIT)
J'espère que cette patch pourrait être utile à quelqu'un. 
Bonne journée,
Eddy
--- task_manager.pl.1.89.2.1 
+++ task_manager.pl.proposed          
@@ -183,9 +183,9 @@
 
 ###### DEFINITION OF AVAILABLE COMMANDS FOR TASKS ######
 
-my $date_arg_regexp1 = '\d+|execution_date';
+my $date_arg_regexp1 = '\d+|tomorrow|execution_date';
 my $date_arg_regexp2 = '(\d\d\d\dy)(\d+m)?(\d+d)?(\d+h)?(\d+min)?(\d+sec)?';
-my $date_arg_regexp3 = '(\d+|execution_date)(\+|\-)(\d+y)?(\d+m)?(\d+w)?(\d+d)?(\d+h)?(\d+min)?(\d+sec)?';
+my $date_arg_regexp3 = '(\d+|tomorrow|execution_date)(\+|\-)(\d+y)?(\d+m)?(\d+w)?(\d+d)?(\d+h)?(\d+min)?(\d+sec)?';
 my $delay_regexp = '(\d+y)?(\d+m)?(\d+w)?(\d+d)?(\d+h)?(\d+min)?(\d+sec)?';
 my $var_regexp ='@\w+';
 my $subarg_regexp = '(\w+)(|\((.*)\))'; # for argument with sub argument (ie arg(sub_arg))
@@ -240,6 +240,7 @@
 
     my $current_date = time; # current epoch date
     my $rep = &tools::adate ($current_date);
+    my @tomorrow = localtime(time() + (24*3600)); @tomorrow[0..2] = 0; my $tomorrow = timelocal(@tomorrow);
 

     ## List all tasks
@@ -256,6 +257,7 @@
 
     ### creation of required tasks
     my %default_data = ('creation_date' => $current_date, # hash of datas necessary to the creation of tasks
+                        'tomorrow'      => $tomorrow,
                        'execution_date' => 'execution_date');
 
     ## global tasks
@@ -899,6 +901,7 @@
     ## Determine type
     my ($type, $model_choice);
     my %data = "('creation_date'"  => $task->{'date'},
+                'tomorrow'       => $task->{'date'},
                'execution_date' => 'execution_date');
     if ($listname eq '_global') {
        $type = '_global';
@@ -1060,6 +1063,7 @@
 
     # building of the data hash necessary to the create subroutine
     my %data = "('creation_date'"  => $task->{'date'},
+                'tomorrow'       => $task->{'date'},
                'execution_date' => 'execution_date');
 
     if ($type eq 'list') {
----- Message d'origine -----
À : adresse@cachée
Envoyé : 24 janvier 2007 16:36
Objet : [sympa-fr] task_models/sync_include.ttl.task - next(heure précise) vs next(ttl)

Bonjour,
 
J'utilise avec succès sympa 5.2.3
 
Je constate que mes listes dynamiques sont synchronisées
à tous les intervalles de TTL secondes (3600 par défaut)
 
Ainsi, le task  '/usr/share/sympa/list_task_models/sync_include.ttl.task' indique:
---
title.gettext Update of list members based on the TTL
/INIT
sync_include ()
next([execution_date]+[list->ttl]sec,INIT)
---
 
J'aimerais pouvoir synchroniser une seule fois par jour à compter d'une heure précise (par exemple 01h30)
 
J'ai consulté la section 17.8.3 de http://www.sympa.org/doc/html/node18.html
 
"next([execution_date]+1d,INIT)" n'est pas ce que désire.

 
 
J'ai créé le task '/etc/sympa/task_models/sync_include.ttl.task' contenant:
---
[title.gettext Update of list members
/INIT
sync_include ()
next(01h30min,INIT)
---
 
J'ai détruit le task '/var/sympa/spool/task/<date>.INIT.sync_include.<liste>'
Ensuite, j'ai redémarré le service sympa.
 
Le task /var/sympa/spool/task/<blabla...> a été recréé automatiquement
mais en se basant sur le contenu de
'/usr/share/sympa/list_task_models/sync_include.ttl.task'
plutôt que 
'/etc/sympa/task_models/sync_include.ttl.task'  !!!
 
 
Quelle syntaxe puis-je utiliser pour exécuter à une heure XX plutôt qu'à un intervalle YY ?
 
Autre solution ?
 
Par exemple:  "at(01h30,INIT)" plutôt que "next..."
 
Merci
Eddy



Archives gérées par MHonArc 2.6.19+.

Haut de le page