1
0
mirror of https://github.com/e107inc/e107.git synced 2025-07-31 03:40:37 +02:00

System Crons were failing. Working again.

This commit is contained in:
CaMer0n
2009-12-24 09:59:21 +00:00
parent ddb01846f6
commit 2ae50931ea
4 changed files with 67 additions and 32 deletions

View File

@@ -9,9 +9,9 @@
* General purpose file * General purpose file
* *
* $Source: /cvs_backup/e107_0.8/class2.php,v $ * $Source: /cvs_backup/e107_0.8/class2.php,v $
* $Revision: 1.170 $ * $Revision: 1.171 $
* $Date: 2009-12-18 20:49:54 $ * $Date: 2009-12-24 09:59:20 $
* $Author: e107steved $ * $Author: e107coders $
* *
*/ */
// //
@@ -1584,18 +1584,19 @@ function init_session()
define('USERIP', $e107->getip()); define('USERIP', $e107->getip());
if(varset($_E107['cli']))
if(isset($_E107['cli']) && $_SERVER['argv'][1])
{ {
require_once(e_HANDLER.'cli_class.php'); define('USER', true);
$cli = new eCLI; define('USERID', 1);
$arg = $cli->parse_args(); define('USERNAME', 'e107-cli');
if($arg['u'] && $arg['p']) define('USERTHEME', false);
{ define('ADMIN', true);
e107_require_once(e_HANDLER.'login.php'); define('GUEST', false);
$usr = new userlogin; define('USERCLASS', '');
$cli_log = $usr->userlogin(trim($arg['u']), trim($arg['p']), 0); define('USEREMAIL', '');
} define('USERCLASS_LIST', '');
define('USERCLASS', '');
return;
} }
if (!isset($_COOKIE[e_COOKIE]) && !isset($_SESSION[e_COOKIE]) && !isset($_E107['cli'])) if (!isset($_COOKIE[e_COOKIE]) && !isset($_SESSION[e_COOKIE]) && !isset($_E107['cli']))

View File

@@ -12,8 +12,8 @@
| GNU General Public License (http://gnu.org). | GNU General Public License (http://gnu.org).
| |
| $Source: /cvs_backup/e107_0.8/cron.php,v $ | $Source: /cvs_backup/e107_0.8/cron.php,v $
| $Revision: 1.7 $ | $Revision: 1.8 $
| $Date: 2009-10-24 12:01:24 $ | $Date: 2009-12-24 09:59:21 $
| $Author: e107coders $ | $Author: e107coders $
+----------------------------------------------------------------------------+ +----------------------------------------------------------------------------+
*/ */
@@ -21,11 +21,15 @@
// Usage: [full path to this script]cron.php --u=admin --p=password // use your admin login. // Usage: [full path to this script]cron.php --u=admin --p=password // use your admin login.
$_E107['cli'] = TRUE; $_E107['cli'] = TRUE;
$_E107['debug'] = FALSE;
$_E107['no_online'] = TRUE;
require_once(realpath(dirname(__FILE__)."/class2.php")); require_once(realpath(dirname(__FILE__)."/class2.php"));
$pwd = trim($_SERVER['argv'][1]); $pwd = ($_E107['debug'] && $_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : trim($_SERVER['argv'][1]);
if($pref['e_cron_pwd'] != $pwd) if($pref['e_cron_pwd'] != $pwd)
{ {
require_once(e_HANDLER."mail.php"); require_once(e_HANDLER."mail.php");
$message = "Your Cron Schedule is not configured correctly. Your passwords do not match. $message = "Your Cron Schedule is not configured correctly. Your passwords do not match.
<br /><br /> <br /><br />
@@ -59,21 +63,35 @@ if($pref['e_cron_pref']) // grab cron
} }
if($_E107['debug'] && $_SERVER['QUERY_STRING'])
{
echo "<h1>Cron List</h1>";
print_a($list);
}
require_once(e_HANDLER."cron_class.php"); require_once(e_HANDLER."cron_class.php");
$cron = new CronParser(); $cron = new CronParser();
foreach($list as $func=>$val) foreach($list as $func=>$val)
{ {
$cron->calcLastRan($val['tab']); $cron->calcLastRan($val['tab']);
$due = $cron->getLastRanUnix(); $due = $cron->getLastRanUnix();
if($_E107['debug'])
{
echo "<br />Cron: ".$val['function'];
}
if($due > (time()-45)) if($due > (time()-45))
{ {
if($_E107['debug']) { echo "<br />Running Now...<br />path: ".$val['path']; }
if(($val['path']=='_system') || is_readable(e_PLUGIN.$val['path']."/e_cron.php")) if(($val['path']=='_system') || is_readable(e_PLUGIN.$val['path']."/e_cron.php"))
{ {
if($val['path'] != '_system') if($val['path'] != '_system') // this is correct.
{ {
include_once(e_PLUGIN.$val['path']."/e_cron.php"); include_once(e_PLUGIN.$val['path']."/e_cron.php");
} }
@@ -85,13 +103,24 @@ foreach($list as $func=>$val)
if(method_exists($obj,$val['function'])) if(method_exists($obj,$val['function']))
{ {
// $mes->add("Executing config function <b>".$key." : ".$method_name."()</b>", E_MESSAGE_DEBUG); // $mes->add("Executing config function <b>".$key." : ".$method_name."()</b>", E_MESSAGE_DEBUG);
if($_E107['debug']) { echo "<br />Method Found: ".$classname."::".$val['function']."()"; }
$status = call_user_func(array($obj,$val['function'])); $status = call_user_func(array($obj,$val['function']));
if(!$status) if(!$status)
{ {
//TODO log error in admin log. //TODO log error in admin log.
// echo "\nerror running the function ".$func.".\n"; log the error. // echo "\nerror running the function ".$func.".\n"; // log the error.
if($_E107['debug']) { echo "<br />Method returned False: ".$val['function']; }
} }
} }
else
{
if($_E107['debug']) { echo "<br />Couldn't find method: ".$val['function']; }
}
}
else
{
if($_E107['debug']) { echo "<br />Couldn't find class: ".$classname; }
} }
} }

View File

@@ -11,9 +11,9 @@
| GNU General Public License (http://gnu.org/). | GNU General Public License (http://gnu.org/).
| |
| $Source: /cvs_backup/e107_0.8/e107_admin/cron.php,v $ | $Source: /cvs_backup/e107_0.8/e107_admin/cron.php,v $
| $Revision: 1.24 $ | $Revision: 1.25 $
| $Date: 2009-11-27 21:42:46 $ | $Date: 2009-12-24 09:59:21 $
| $Author: e107steved $ | $Author: e107coders $
+----------------------------------------------------------------------------+ +----------------------------------------------------------------------------+
*/ */
@@ -50,7 +50,7 @@ class cron
$this->cronAction = e_QUERY; $this->cronAction = e_QUERY;
// The 'available' flag only gives the option to configure the cron if the underlying feature is enabled // The 'available' flag only gives the option to configure the cron if the underlying feature is enabled
$this->coreCrons['_system_cron'] = array( $this->coreCrons['_system'] = array(
0 => array('name' => 'Test Email', 'function' => 'sendEmail', 'description' => 'Send a test email to '.$pref['siteadminemail'].'<br />Recommended to test the scheduling system.'), 0 => array('name' => 'Test Email', 'function' => 'sendEmail', 'description' => 'Send a test email to '.$pref['siteadminemail'].'<br />Recommended to test the scheduling system.'),
1 => array('name' => 'Mail Queue', 'function' => 'procEmailQueue', 'description' => 'Process mail queue'), 1 => array('name' => 'Mail Queue', 'function' => 'procEmailQueue', 'description' => 'Process mail queue'),
2 => array('name' => 'Mail Bounce Check', 'function' => 'procEmailBounce', 'description' => 'Check for bounced emails', 'available' => vartrue($pref['mail_bounce_auto'])), 2 => array('name' => 'Mail Bounce Check', 'function' => 'procEmailBounce', 'description' => 'Check for bounced emails', 'available' => vartrue($pref['mail_bounce_auto'])),
@@ -119,7 +119,8 @@ class cron
$active = ($ago < 125) ? TRUE : FALSE; $active = ($ago < 125) ? TRUE : FALSE;
$status = ($active) ? LAN_ENABLED : LAN_DISABLED; // "Enabled" : "Offline"; $status = ($active) ? LAN_ENABLED : LAN_DISABLED; // "Enabled" : "Offline";
$lastRefresh = ($ago < 10000) ? $ago.' seconds ago.' : 'Never';
$mes->add("Status: <b>".$status."</b>", E_MESSAGE_INFO); $mes->add("Status: <b>".$status."</b>", E_MESSAGE_INFO);
// print_a($pref['e_cron_pref']); // print_a($pref['e_cron_pref']);
@@ -134,11 +135,13 @@ class cron
} }
} }
} }
$mes->add("Active Crons: <b>".count($list)."</b>", E_MESSAGE_INFO); $mes->add("Active Crons: <b>".count($list)."</b>", E_MESSAGE_INFO);
$mes->add("Last cron refresh was ".$ago.' seconds ago.', E_MESSAGE_INFO); $mes->add("Last cron refresh: ".$lastRefresh, E_MESSAGE_INFO);
//FIXME: for Windows, the is_executable() function only checks the file //FIXME: for Windows, the is_executable() function only checks the file
// extensions of exe, com, bat and cmd. // extensions of exe, com, bat and cmd.
if(!is_executable(e_BASE."cron.php")) if(!is_executable(e_BASE."cron.php"))
{ {
$mes->add("Please CHMOD /cron.php to 755" , E_MESSAGE_WARNING); $mes->add("Please CHMOD /cron.php to 755" , E_MESSAGE_WARNING);

View File

@@ -10,9 +10,9 @@
| GNU General Public License (http://gnu.org). | GNU General Public License (http://gnu.org).
| |
| $Source: /cvs_backup/e107_0.8/e107_handlers/cron_class.php,v $ | $Source: /cvs_backup/e107_0.8/e107_handlers/cron_class.php,v $
| $Revision: 1.5 $ | $Revision: 1.6 $
| $Date: 2009-11-27 21:42:46 $ | $Date: 2009-12-24 09:59:21 $
| $Author: e107steved $ | $Author: e107coders $
+----------------------------------------------------------------------------+ +----------------------------------------------------------------------------+
*/ */
if (!defined('e107_INIT')) { exit; } if (!defined('e107_INIT')) { exit; }
@@ -32,7 +32,9 @@ class _system_cron
function sendEmail() // Test Email. function sendEmail() // Test Email.
{ {
global $pref; global $pref, $_E107;
if($_E107['debug']) { echo "<br />sendEmail() executed"; }
require_once(e_HANDLER.'mail.php'); require_once(e_HANDLER.'mail.php');
$message = "Your Cron test worked correctly. Sent at ".date("r")."."; $message = "Your Cron test worked correctly. Sent at ".date("r").".";
@@ -80,7 +82,7 @@ class _system_cron
/* $Id: cron_class.php,v 1.5 2009-11-27 21:42:46 e107steved Exp $ */ /* $Id: cron_class.php,v 1.6 2009-12-24 09:59:21 e107coders Exp $ */
/**####################################################################################################**\ /**####################################################################################################**\
Version: V1.01 Version: V1.01