Changeset 31604 in spip-zone


Ignore:
Timestamp:
Sep 15, 2009, 9:45:15 PM (10 years ago)
Author:
cedric@…
Message:

reparer le code qui n'avait pas du tout tourne
le plugin s'installe, installe les taches cron en queue, et les traire correctement a la periode souhaitee

Location:
_plugins_/job_queue
Files:
3 edited

Legend:

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

    r31593 r31604  
    6060        foreach($taches as $function=>$period)
    6161                queue_add_job($function, _L("Tache CRON $function (ASAP)"), array(time()-abs($period)), "genie/");
    62         }
    6362       
    6463        // et on passe la main a la gestion de la queue !
     
    132131        $taches = taches_generales();
    133132        foreach($taches as $tache=>$periode){
    134                 queue_genie_replan_job($tache,$periode);
     133                //queue_genie_replan_job($tache,$periode);
    135134        }
    136135}
  • _plugins_/job_queue/inc/queue.php

    r31593 r31604  
    4141                        $no_duplicate
    4242                AND
    43                         sql_count('spip_jobs',
     43                        sql_countsel('spip_jobs',
    4444                                'fonction='.sql_quote($function)
    4545                                .(($no_duplicate=='function_only')?'':
     
    126126function queue_schedule(){
    127127        $start = time();
     128
    128129        // rien a faire si le prochain job est encore dans le futur
    129130        if ($GLOBALS['meta']['queue_next_job_time']>$start)
     
    142143        $res = sql_select('*','spip_jobs','date<'.sql_quote($now),'','priorite DESC,date','0,10');
    143144        do {
    144                 $row = sql_fetch($res);
    145                 // il faut un verrou, a base de sql_delete ?
    146                 if (sql_delete('spip_jobs','id_job='.intval($row['id_job']))
    147                         AND sql_affected_rows()){
    148                         // on a la main sur le job :
    149                         // l'executer
    150                         $res = queue_start_job($row);
    151 
    152                         // est-ce une tache cron qu'il faut relancer ?
    153                         if ($periode = queue_is_cron_job($row['fonction'],$row['inclure'])){
    154                                 // relancer avec les nouveaux arguments de temps
    155                                 include_spip('inc/genie');
    156                                 if ($res<0)
    157                                         // relancer tout de suite, mais en baissant la priorite
    158                                         queue_genie_replan_job($row['fonction'],$periode,0-$res/*last*/,0/*ASAP*/,$row['priorite']-1);
    159                                 else
    160                                         // relancer avec la periode prevue
    161                                         queue_genie_replan_job($row['fonction'],$periode,time());
     145                if ($row = sql_fetch($res)){
     146                        // il faut un verrou, a base de sql_delete ?
     147                        if (sql_delete('spip_jobs','id_job='.intval($row['id_job']))){
     148                                // on a la main sur le job :
     149                                // l'executer
     150                                $res = queue_start_job($row);
     151
     152                                // est-ce une tache cron qu'il faut relancer ?
     153                                if ($periode = queue_is_cron_job($row['fonction'],$row['inclure'])){
     154                                        // relancer avec les nouveaux arguments de temps
     155                                        include_spip('inc/genie');
     156                                        if ($res<0)
     157                                                // relancer tout de suite, mais en baissant la priorite
     158                                                queue_genie_replan_job($row['fonction'],$periode,0-$res/*last*/,0/*ASAP*/,$row['priorite']-1);
     159                                        else
     160                                                // relancer avec la periode prevue
     161                                                queue_genie_replan_job($row['fonction'],$periode,time());
     162                                }
    162163                        }
    163164                }
    164 
    165         } while (time()<$start+$max_time);
     165        } while ($row AND time()<$start+$max_time);
     166       
    166167        if ($row = sql_fetch($res))
    167168                queue_update_next_job_time(0); // on sait qu'il y a encore des jobs a lancer ASAP
  • _plugins_/job_queue/plugin.xml

    r31601 r31604  
    1010        <lien></lien> <!-- URI de documentation -->
    1111  <prefix>queue</prefix>
     12        <pipeline>
     13                <nom>declarer_tables_interfaces</nom>
     14                <inclure>base/queue.php</inclure>
     15        </pipeline>
     16        <pipeline>
     17                <nom>declarer_tables_principales</nom>
     18                <inclure>base/queue.php</inclure>
     19        </pipeline>
    1220</plugin>
Note: See TracChangeset for help on using the changeset viewer.