function run_scheduled_task($process = 'queue') { $scheduled_times = WYSIJA::get_cron_schedule($process); if (isset($scheduled_times['running']) && $scheduled_times['running'] && $scheduled_times['running'] + 900 > time()) { if ($this->report) { echo 'already running : ' . $process . '<br/>'; } return; } WYSIJA::set_cron_schedule($process, 0, time()); switch ($process) { case 'queue': WYSIJA::croned_queue($process); if (defined('WYSIJANLP')) { $hPremium =& WYSIJA::get('premium', 'helper', false, WYSIJANLP); $hPremium->croned_queue_process(); } break; case 'bounce': if (defined('WYSIJANLP')) { $hPremium =& WYSIJA::get('premium', 'helper', false, WYSIJANLP); $hPremium->croned_bounce(); } break; case 'daily': WYSIJA::croned_daily(); break; case 'weekly': if (defined('WYSIJANLP')) { $hPremium =& WYSIJA::get('premium', 'helper', false, WYSIJANLP); $hPremium->croned_weekly(); } WYSIJA::croned_weekly(); break; case 'monthly': WYSIJA::croned_monthly(); break; } WYSIJA::set_cron_schedule($process); if ($this->report) { echo 'processed : ' . $process . '<br/>'; } }
/** * run process if it's not detected as already running * @param type $process * @return type */ function run_scheduled_task($process = 'queue') { //first let's make sure that the process asked to be run is not already running $scheduled_times = WYSIJA::get_cron_schedule($process); $processes = WYSIJA::get_cron_frequencies(); $process_frequency = $processes[$process]; // check if the scheduled task is already being processed, // we consider it timed out once the started running time plus the frequency has been passed if (!empty($scheduled_times['running']) && $scheduled_times['running'] + $process_frequency > time()) { if ($this->report) { echo 'already running : ' . $process . '<br/>'; } return; } // set schedule as running WYSIJA::set_cron_schedule($process, 0, time()); // execute schedule switch ($process) { case 'queue': // check if there are any scheduled newsletters ready for action WYSIJA::check_scheduled_newsletters(); // if premium is activated we execute the premium cron process if (defined('WYSIJANLP')) { $helper_premium = WYSIJA::get('premium', 'helper', false, WYSIJANLP); $helper_premium->croned_queue_process(); } else { // run the standard queue process no scheduled tasks will be check since it has already been checked above WYSIJA::croned_queue(false); } break; case 'bounce': $helper_premium = WYSIJA::get('premium', 'helper', false, WYSIJANLP); $model_config = WYSIJA::get('config', 'model'); // if premium is activated we launch the premium function if (is_multisite()) { $multisite_prefix = 'ms_'; } // we don't process the bounce automatically unless the option is ticked if (defined('WYSIJANLP') && $model_config->getValue($multisite_prefix . 'bounce_process_auto')) { $helper_premium->croned_bounce(); } else { $process .= ' (bounce handling not activated)'; } break; case 'daily': WYSIJA::croned_daily(); break; case 'weekly': if (defined('WYSIJANLP')) { $helper_premium = WYSIJA::get('premium', 'helper', false, WYSIJANLP); $helper_premium->croned_weekly(); } WYSIJA::croned_weekly(); break; case 'monthly': WYSIJA::croned_monthly(); break; } // set next_schedule details WYSIJA::set_cron_schedule($process); if ($this->report) { echo 'processed : ' . $process . '<br/>'; } }
} if ($process) { /*include the needed parts of wp plus wysija*/ $plugin_path = dirname(__FILE__); $wp_root = dirname(dirname(dirname($plugin_path))); require_once $wp_root . DIRECTORY_SEPARATOR . 'wp-config.php'; require_once $wp_root . DIRECTORY_SEPARATOR . 'wp-includes' . DIRECTORY_SEPARATOR . 'wp-db.php'; require_once $plugin_path . DIRECTORY_SEPARATOR . "core" . DIRECTORY_SEPARATOR . "base.php"; if (!isset($_REQUEST[WYSIJA_CRON]) || (isset($_SERVER['argv'][1]) || $_SERVER['argv'][1] != WYSIJA_CRON)) { exit; } //if($report) require_once(WYSIJA_INC."debug.php"); switch ($process) { case 'queue': WYSIJA::croned_queue(); break; case 'bounce': WYSIJA::croned_bounce(); break; case 'daily': WYSIJA::croned_daily(); break; case 'weekly': WYSIJA::croned_weekly(); break; case 'monthly': WYSIJA::croned_monthly(); break; } //if($report) dbg('report'); }