예제 #1
0
function wysija_exec_process($process = 'queue')
{
    $scheduled_times = WYSIJA::get_cron_schedule($process);
    if (isset($scheduled_times['running']) && $scheduled_times['running'] && $scheduled_times['running'] + 900 > time()) {
        echo 'already running : ' . $process . '<br/>';
        return;
    }
    //set schedule as running
    WYSIJA::set_cron_schedule($process, 0, time());
    //execute schedule
    switch ($process) {
        case 'queue':
            WYSIJA::croned_queue($process);
            $hPremium =& WYSIJA::get('premium', 'helper', false, WYSIJANLP);
            if (is_object($hPremium)) {
                $hPremium->splitVersion_croned_queue_process();
            }
            break;
        case 'bounce':
            $hPremium =& WYSIJA::get('premium', 'helper', false, WYSIJANLP);
            if (is_object($hPremium)) {
                $hPremium->croned_bounce();
            }
            break;
        case 'daily':
            WYSIJA::croned_daily();
            break;
        case 'weekly':
            if (is_object($hPremium)) {
                $hPremium->croned_weekly();
            }
            break;
        case 'monthly':
            WYSIJA::croned_monthly();
            break;
    }
    //set next_schedule
    WYSIJA::set_cron_schedule($process);
    if ($report) {
        echo 'processed : ' . $process . '<br/>';
    }
}
예제 #2
0
 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/>';
     }
 }
예제 #3
0
 /**
  * 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/>';
     }
 }
예제 #4
0
    $report = $_SERVER['argv'][3];
}
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');