Changeset 40473 in spip-zone


Ignore:
Timestamp:
Sep 2, 2010, 10:06:46 AM (10 years ago)
Author:
cedric@…
Message:

regrouper lecture et ecriture de la date de prochain job dans 2 fonctions centralisees

Location:
_plugins_/job_queue
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/job_queue/inc/queue.php

    r40020 r40473  
    213213
    214214        // rien a faire si le prochain job est encore dans le futur
    215         if ($GLOBALS['meta']['queue_next_job_time']>$time AND (!$force_jobs OR !count($force_jobs)))
     215        if (queue_get_next_job_time()>$time AND (!$force_jobs OR !count($force_jobs)))
    216216                return;
    217217
     
    373373
    374374        // chercher la date du prochain job si pas connu
    375         if (is_null($next) OR !isset($GLOBALS['meta']['queue_next_job_time'])){
     375        if (is_null($next) OR !queue_get_next_job_time()){
    376376                $date = sql_getfetsel('date','spip_jobs',"status=".intval(_JQ_SCHEDULED),'','date','0,1');
    377377                $next = strtotime($date);
     
    389389                }
    390390        }
    391         // toujours relire la table pour comparer, pour tenir compte des maj concourrantes
    392         // et ne mettre a jour que si il y a un interet a le faire
    393         $curr_next = sql_getfetsel('valeur','spip_meta',"nom='queue_next_job_time'");
    394         if (
    395                         ($curr_next<$time AND $next>$time) // le prochain job est dans le futur mais pas la date planifiee actuelle
    396                         OR $curr_next>$next // le prochain job est plus tot que la date planifiee actuelle
    397                 ) {
    398                 include_spip('inc/meta');
    399                 ecrire_meta('queue_next_job_time',$next);
    400         }
     391
     392        queue_set_next_job_time($next);
    401393        $deja_la = false;
    402394}
  • _plugins_/job_queue/plugin.xml

    r39423 r40473  
    22  <nom>Job Queue</nom>
    33  <auteur>Cedric&amp;Fil</auteur>
    4   <version>0.4.5</version>
     4  <version>0.4.6</version>
    55  <version_base>0.3.3</version_base>
    66  <etat>test</etat>
  • _plugins_/job_queue/queue_options.php

    r37107 r40473  
    7777}
    7878
     79
     80/**
     81 * Lire la date de prochain job
     82 * @return <type>
     83 */
     84function queue_get_next_job_time() {
     85        return isset($GLOBALS['meta']['queue_next_job_time'])?$GLOBALS['meta']['queue_next_job_time']:0;
     86}
     87
     88/**
     89 * Mettre a jour la date de prochain job
     90 * @param <type> $next
     91 */
     92function queue_set_next_job_time($next) {
     93        $time = time();
     94        // toujours relire la table pour comparer, pour tenir compte des maj concourrantes
     95        // et ne mettre a jour que si il y a un interet a le faire
     96        $curr_next = sql_getfetsel('valeur','spip_meta',"nom='queue_next_job_time'");
     97        if (
     98                        ($curr_next<$time AND $next>$time) // le prochain job est dans le futur mais pas la date planifiee actuelle
     99                        OR $curr_next>$next // le prochain job est plus tot que la date planifiee actuelle
     100                ) {
     101                include_spip('inc/meta');
     102                ecrire_meta('queue_next_job_time',$next);
     103        }
     104        return $GLOBALS['meta']['queue_next_job_time'];
     105}
     106
    79107?>
  • _plugins_/job_queue/queue_pipelines.php

    r37171 r40473  
    2626
    2727        // rien a faire si le prochain job est encore dans le futur
    28         if ($GLOBALS['meta']['queue_next_job_time']>time()){
     28        if (queue_get_next_job_time()>time()){
    2929                if (!defined('_DIRECT_CRON_INHIBE'))
    3030                        define('_DIRECT_CRON_INHIBE',true); // ne plus faire d'appel direct au cron en fin de hit
Note: See TracChangeset for help on using the changeset viewer.