コード例 #1
0
ファイル: Job.php プロジェクト: guysyml/software
 /**
  * Cron task
  *
  * @param array $args
  *
  * @return void
  */
 public function cron_run($args)
 {
     if (false !== get_transient('my-wp-backup-running')) {
         error_log(__('A job is already running', 'my-wp-backup'));
         return;
     }
     $id = $args[0];
     $uniqid = $args[1];
     $is_verbose = isset($args[2]) ? $args[2] : false;
     $job = self::get($id);
     $job->is_verbose = $is_verbose;
     $job['uniqid'] = $uniqid;
     try {
         $options = get_site_option('my-wp-backup-options', Admin::$options);
         set_time_limit($options['time_limit']);
         $job->running($uniqid);
         $files = array();
         $job->log(__('Performing full backup', 'my-wp-backup'));
         $sql = new ExportFile($job);
         $archive = new Archive($job);
         // Export database into wp directory.
         $sql->export();
         set_transient('my-wp-backup-running', $job->toArray(), 0);
         // Create a list of files to be backed up.
         // This excludes unchanged files if the backup is differential.
         $job->do_files($files);
         // Create an archive.
         $archive->create();
         // Upload all created archives.
         $job->upload();
         // Deleted sql file from wp directory.
         $sql->delete();
         // Commit the backup information into file.
         $job->finish();
         // Send reports.
         $job->report();
     } catch (\Exception $e) {
         $job->log($e->getMessage(), 'error');
         error_log($e);
     }
     delete_transient('my-wp-backup-running');
     set_transient('my-wp-backup-finished', $uniqid, 0);
     $job->log(sprintf(__('Finished running job in %.1f seconds.', 'my-wp-backup'), (null === $job->end ? time() : $job->end) - $job->start));
 }