Esempio n. 1
0
 private static function _fileoptions_lock_ignore_timeout_value()
 {
     return backupbuddy_core::detectLikelyHighestExecutionTime() + backupbuddy_constants::TIMED_OUT_PROCESS_RESUME_WIGGLE_ROOM;
 }
Esempio n. 2
0
if (false === ($stats = backupbuddy_api::getLiveStats())) {
    // Live is disconnected.
    die('-1');
}
echo json_encode($stats);
// If there is more to do and too long of time has passed since activity then try to jumpstart the process at the beginning.
if ((0 == $stats['files_total'] || $stats['files_sent'] < $stats['files_total']) && 'wait_on_transfers' != $stats['current_function']) {
    // ( Files to send not yet calculated OR more remain to send ) AND not on the wait_on_transfers step.
    $time_since_last_activity = microtime(true) - $stats['last_periodic_activity'];
    if ($time_since_last_activity < 30) {
        // Don't even bother getting max execution time if it's been less than 30 seconds since run.
        // do nothing
    } else {
        // More than 30 seconds since last activity.
        // Detect max PHP execution time. If TESTED value is higher than PHP value then go with that since we want to err on not overlapping processes here.
        $detected_execution = backupbuddy_core::detectLikelyHighestExecutionTime();
        if ($time_since_last_activity > $detected_execution + backupbuddy_constants::TIMED_OUT_PROCESS_RESUME_WIGGLE_ROOM) {
            // Enough time has passed to assume timed out.
            require_once pb_backupbuddy::plugin_path() . '/destinations/live/live.php';
            if (false === ($liveID = backupbuddy_live::getLiveID())) {
                die('-1');
            }
            if ('1' != pb_backupbuddy::$options['remote_destinations'][$liveID]['pause_periodic']) {
                // Only proceed if NOT paused.
                pb_backupbuddy::status('warning', 'BackupBuddy Stash Live process appears timed out while user it viewing Live page. Forcing run now.');
                $cronArgs = array();
                $schedule_result = backupbuddy_core::schedule_single_event(time(), 'live_periodic', $cronArgs);
                if (true === $schedule_result) {
                    pb_backupbuddy::status('details', 'Next Live Periodic chunk step cron event scheduled.');
                } else {
                    pb_backupbuddy::status('error', 'Next Live Periodic chunk step cron event FAILED to be scheduled.');