Platform  3.1
PHP API documentation
 All Data Structures Namespaces Files Functions Variables Pages
fdl_cronexec.php
Go to the documentation of this file.
1 <?php
2 /*
3  * @author Anakeen
4  * @license http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ Anakeen - licence CC
5  * @package FDL
6 */
7 /**
8  * Execute Freedom Processes when needed
9  *
10  * @author Anakeen 2005
11  * @version $Id: fdl_cronexec.php,v 1.4 2008/12/31 14:39:52 eric Exp $
12  * @license http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ Anakeen - licence CC
13  * @package FDL
14  * @subpackage
15  */
16 /**
17  */
18 // refreah for a classname
19 // use this only if you have changed title attributes
20 include_once ("FDL/Class.DocFam.php");
21 include_once ("FDL/Class.DocTimer.php");
22 include_once ("FDL/Class.SearchDoc.php");
23 
25 $appl->Set("FDL", $core);
26 
27 $dbaccess = $appl->GetParam("FREEDOM_DB");
28 if ($dbaccess == "") {
29  print "Database not found : param FREEDOM_DB";
30  exit;
31 }
32 
34 {
35  // Verify EXEC document
36  $now = Doc::getTimeDate();
37 
38  $s = new SearchDoc($dbaccess, "EXEC");
39  $s->setObjectReturn();
40  $s->addFilter("exec_nextdate < '" . $now . "'");
41  $s->addFilter("exec_status is null or exec_status='none'");
42  // $s->setDebugMode();
43  $s->search();
44  if ($s->count() > 0) {
45  while ($de = $s->nextDoc()) {
46  $de->setValue("exec_status", "waiting");
47  $de->modify(true, array(
48  "exec_status"
49  ) , true);
50  }
51  $s = new SearchDoc($dbaccess, "EXEC");
52  $s->setObjectReturn();
53  $s->addFilter("exec_nextdate < '" . $now . "'");
54  $s->addFilter("exec_status != 'progressong'");
55  //$s->setDebugMode();
56  $s->search();
57  //print_r2($s->getDebugInfo());
58  while ($de = $s->nextDoc()) {
59  $status = $de->bgExecute(_("freedom cron try execute"));
60  $del = new_Doc($dbaccess, $de->latestId(false, true));
61 
62  $del->deleteValue("exec_status");
63  $del->deleteValue("exec_handnextdate");
64  $del->refresh();
65  $del->postModify();
66  $err = $del->modify();
67  print sprintf("Execute %s [%d] (%s) : %s\n", $del->title, $del->id, $del->exec_handnextdate, $err);
68  }
69  }
70 }
72 {
73  // Verify EXEC document
74  $dt = new DocTimer($dbaccess);
75  $ate = $dt->getActionsToExecute();
76 
77  foreach ($ate as $k => $v) {
78  $dt->Affect($v);
79  $dt->executeTimerNow();
80  }
81 }
84 ?>
← centre documentaire © anakeen - published under CC License - Dynacase