当前位置: 首页>>代码示例>>PHP>>正文


PHP cron::remove方法代码示例

本文整理汇总了PHP中cron::remove方法的典型用法代码示例。如果您正苦于以下问题:PHP cron::remove方法的具体用法?PHP cron::remove怎么用?PHP cron::remove使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在cron的用法示例。


在下文中一共展示了cron::remove方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: execute

 public function execute(&$_scenario)
 {
     if ($this->getType() == 'if') {
         if ($this->getSubElement('if')->execute($_scenario)) {
             if ($this->getSubElement('if')->getOptions('allowRepeatCondition', 0) == 1) {
                 if ($this->getSubElement('if')->getOptions('previousState', -1) != 1) {
                     $this->getSubElement('if')->setOptions('previousState', 1);
                     $this->getSubElement('if')->save();
                 } else {
                     $_scenario->setLog(__('Non exécution des actions pour cause de répétition', __FILE__));
                     return;
                 }
             }
             return $this->getSubElement('then')->execute($_scenario);
         }
         if (!is_object($this->getSubElement('else'))) {
             return;
         }
         if ($this->getSubElement('if')->getOptions('allowRepeatCondition', 0) == 1) {
             if ($this->getSubElement('if')->getOptions('previousState', -1) != 0) {
                 $this->getSubElement('if')->setOptions('previousState', 0);
                 $this->getSubElement('if')->save();
             } else {
                 $_scenario->setLog(__('Non exécution des actions pour cause de répétition', __FILE__));
                 return;
             }
         }
         return $this->getSubElement('else')->execute($_scenario);
     } else {
         if ($this->getType() == 'action') {
             return $this->getSubElement('action')->execute($_scenario);
         } else {
             if ($this->getType() == 'code') {
                 return $this->getSubElement('code')->execute($_scenario);
             } else {
                 if ($this->getType() == 'for') {
                     $for = $this->getSubElement('for');
                     $limits = $for->getExpression();
                     $limits = intval(jeedom::evaluateExpression($limits[0]->getExpression()));
                     if (!is_numeric($limits)) {
                         $_scenario->setLog(__('[ERREUR] La condition pour une boucle doit être numérique : ', __FILE__) . $limits);
                         throw new Exception(__('La condition pour une boucle doit être numérique : ', __FILE__) . $limits);
                     }
                     $return = false;
                     for ($i = 1; $i <= $limits; $i++) {
                         $return = $this->getSubElement('do')->execute($_scenario);
                     }
                     return $return;
                 } else {
                     if ($this->getType() == 'in') {
                         $in = $this->getSubElement('in');
                         $in = $in->getExpression();
                         $time = ceil(str_replace('.', ',', jeedom::evaluateExpression($in[0]->getExpression())));
                         if (!is_numeric($time) || $time < 0) {
                             $time = 0;
                         }
                         if ($time == 0) {
                             $cmd = '/usr/bin/php ' . dirname(__FILE__) . '/../../core/php/jeeScenario.php ';
                             $cmd .= ' scenario_id=' . $_scenario->getId();
                             $cmd .= ' scenarioElement_id=' . $this->getId();
                             $cmd .= ' >> ' . log::getPathToLog('scenario_element_execution') . ' 2>&1 &';
                             exec($cmd);
                         } else {
                             $crons = cron::searchClassAndFunction('scenario', 'doIn', '"scenarioElement_id":' . $this->getId());
                             if (is_array($crons)) {
                                 foreach ($crons as $cron) {
                                     if ($cron->getState() != 'run') {
                                         $cron->remove();
                                     }
                                 }
                             }
                             $cron = new cron();
                             $cron->setClass('scenario');
                             $cron->setFunction('doIn');
                             $cron->setOption(array('scenario_id' => intval($_scenario->getId()), 'scenarioElement_id' => intval($this->getId()), 'second' => date('s')));
                             $cron->setLastRun(date('Y-m-d H:i:s'));
                             $cron->setOnce(1);
                             $next = strtotime('+ ' . $time . ' min');
                             $cron->setSchedule(date('i', $next) . ' ' . date('H', $next) . ' ' . date('d', $next) . ' ' . date('m', $next) . ' * ' . date('Y', $next));
                             $cron->save();
                             $_scenario->setLog(__('Tâche : ', __FILE__) . $this->getId() . __(' programmé à : ', __FILE__) . date('Y-m-d H:i:00', $next) . ' (+ ' . $time . ' min)');
                         }
                         return true;
                     } else {
                         if ($this->getType() == 'at') {
                             $at = $this->getSubElement('at');
                             $at = $at->getExpression();
                             $next = jeedom::evaluateExpression($at[0]->getExpression());
                             if ($next % 100 > 59) {
                                 if (strpos($at[0]->getExpression(), '-') !== false) {
                                     $next -= 40;
                                 } else {
                                     $next += 40;
                                 }
                             }
                             if (!is_numeric($next) || $next < 0) {
                                 $_scenario->setLog(__('Erreur dans bloc (type A) : ', __FILE__) . $this->getId() . __(', heure programmée invalide : ', __FILE__) . $next);
                             }
                             if ($next < date('Gi') + 1) {
                                 if (strlen($next) == 3) {
//.........这里部分代码省略.........
开发者ID:GaelGRIFFON,项目名称:core,代码行数:101,代码来源:scenarioElement.class.php


注:本文中的cron::remove方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。