diff options
author | Meik Sievertsen <acydburn@phpbb.com> | 2009-10-04 18:13:59 +0000 |
---|---|---|
committer | Meik Sievertsen <acydburn@phpbb.com> | 2009-10-04 18:13:59 +0000 |
commit | bf8ac19eaa8d74f9dfd6d597190f5664e7339382 (patch) | |
tree | c3ad876736748e36cb9176a0248cc43badfc1d9a /phpBB/cron.php | |
parent | 3215bbf88864139dc8c7e9ac5773b1ea8a7e96c1 (diff) | |
download | forums-bf8ac19eaa8d74f9dfd6d597190f5664e7339382.tar forums-bf8ac19eaa8d74f9dfd6d597190f5664e7339382.tar.gz forums-bf8ac19eaa8d74f9dfd6d597190f5664e7339382.tar.bz2 forums-bf8ac19eaa8d74f9dfd6d597190f5664e7339382.tar.xz forums-bf8ac19eaa8d74f9dfd6d597190f5664e7339382.zip |
Move trunk/phpBB to old_trunk/phpBB
git-svn-id: file:///svn/phpbb/trunk@10210 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/cron.php')
-rw-r--r-- | phpBB/cron.php | 285 |
1 files changed, 0 insertions, 285 deletions
diff --git a/phpBB/cron.php b/phpBB/cron.php deleted file mode 100644 index bc801478a9..0000000000 --- a/phpBB/cron.php +++ /dev/null @@ -1,285 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @version $Id$ -* @copyright (c) 2005 phpBB Group -* @license http://opensource.org/licenses/gpl-license.php GNU Public License -* -*/ - -/** -*/ -define('IN_PHPBB', true); -define('IN_CRON', true); -if (!defined('PHPBB_ROOT_PATH')) define('PHPBB_ROOT_PATH', './'); -if (!defined('PHP_EXT')) define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1)); -include(PHPBB_ROOT_PATH . 'common.' . PHP_EXT); - -// Do not update users last page entry -phpbb::$user->session_begin(false); -phpbb::$acl->init(phpbb::$user->data); - -$cron_type = request_var('cron_type', ''); -$use_shutdown_function = (@function_exists('register_shutdown_function')) ? true : false; - -// Output transparent gif -header('Cache-Control: no-cache'); -header('Content-type: image/gif'); -header('Content-length: 43'); - -echo base64_decode('R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=='); - -// test without flush ;) -// flush(); - -// -if (!isset(phpbb::$config['cron_lock'])) -{ - set_config('cron_lock', '0', true); -} - -// make sure cron doesn't run multiple times in parallel -if (phpbb::$config['cron_lock']) -{ - // if the other process is running more than an hour already we have to assume it - // aborted without cleaning the lock - $time = explode(' ', phpbb::$config['cron_lock']); - $time = $time[0]; - - if ($time + 3600 >= time()) - { - exit; - } -} - -define('CRON_ID', time() . ' ' . unique_id()); - -$sql = 'UPDATE ' . CONFIG_TABLE . " - SET config_value = '" . phpbb::$db->sql_escape(CRON_ID) . "' - WHERE config_name = 'cron_lock' AND config_value = '" . phpbb::$db->sql_escape(phpbb::$config['cron_lock']) . "'"; -phpbb::$db->sql_query($sql); - -// another cron process altered the table between script start and UPDATE query so exit -if (phpbb::$db->sql_affectedrows() != 1) -{ - exit; -} - -/** -* Run cron-like action -* Real cron-based layer will be introduced in 3.2 -*/ -switch ($cron_type) -{ - case 'queue': - - if (time() - phpbb::$config['queue_interval'] <= phpbb::$config['last_queue_run'] || !file_exists(PHPBB_ROOT_PATH . 'cache/queue.' . PHP_EXT)) - { - break; - } - - // A user reported using the mail() function while using shutdown does not work. We do not want to risk that. - if ($use_shutdown_function && !phpbb::$config['smtp_delivery']) - { - $use_shutdown_function = false; - } - - include_once(PHPBB_ROOT_PATH . 'includes/functions_messenger.' . PHP_EXT); - $queue = new queue(); - - if ($use_shutdown_function) - { - register_shutdown_function(array(&$queue, 'process')); - } - else - { - $queue->process(); - } - - break; - - case 'tidy_cache': - - if (time() - phpbb::$config['cache_gc'] <= phpbb::$config['cache_last_gc'] || !method_exists(phpbb::$acm, 'tidy')) - { - break; - } - - if ($use_shutdown_function) - { - register_shutdown_function(array(&phpbb::$acm, 'tidy')); - } - else - { - phpbb::$acm->tidy(); - } - - break; - - case 'tidy_search': - - // Select the search method - $search_type = basename(phpbb::$config['search_type']); - - if (time() - phpbb::$config['search_gc'] <= phpbb::$config['search_last_gc'] || !file_exists(PHPBB_ROOT_PATH . 'includes/search/' . $search_type . '.' . PHP_EXT)) - { - break; - } - - include_once(PHPBB_ROOT_PATH . "includes/search/$search_type." . PHP_EXT); - - // We do some additional checks in the module to ensure it can actually be utilised - $error = false; - $search = new $search_type($error); - - if ($error) - { - break; - } - - if ($use_shutdown_function) - { - register_shutdown_function(array(&$search, 'tidy')); - } - else - { - $search->tidy(); - } - - break; - - case 'tidy_warnings': - - if (time() - phpbb::$config['warnings_gc'] <= phpbb::$config['warnings_last_gc']) - { - break; - } - - include_once(PHPBB_ROOT_PATH . 'includes/functions_admin.' . PHP_EXT); - - if ($use_shutdown_function) - { - register_shutdown_function('tidy_warnings'); - } - else - { - tidy_warnings(); - } - - break; - - case 'tidy_database': - - if (time() - phpbb::$config['database_gc'] <= phpbb::$config['database_last_gc']) - { - break; - } - - include_once(PHPBB_ROOT_PATH . 'includes/functions_admin.' . PHP_EXT); - - if ($use_shutdown_function) - { - register_shutdown_function('tidy_database'); - } - else - { - tidy_database(); - } - - break; - - case 'tidy_sessions': - - if (time() - phpbb::$config['session_gc'] <= phpbb::$config['session_last_gc']) - { - break; - } - - if ($use_shutdown_function) - { - register_shutdown_function(array(&$user, 'session_gc')); - } - else - { - phpbb::$user->session_gc(); - } - - break; - - case 'prune_forum': - - $forum_id = request_var('f', 0); - - $sql = 'SELECT forum_id, prune_next, enable_prune, prune_days, prune_viewed, forum_flags, prune_freq - FROM ' . FORUMS_TABLE . " - WHERE forum_id = $forum_id"; - $result = phpbb::$db->sql_query($sql); - $row = phpbb::$db->sql_fetchrow($result); - phpbb::$db->sql_freeresult($result); - - if (!$row) - { - break; - } - - // Do the forum Prune thang - if ($row['prune_next'] < time() && $row['enable_prune']) - { - include_once(PHPBB_ROOT_PATH . 'includes/functions_admin.' . PHP_EXT); - - if ($row['prune_days']) - { - if ($use_shutdown_function) - { - register_shutdown_function('auto_prune', $row['forum_id'], 'posted', $row['forum_flags'], $row['prune_days'], $row['prune_freq']); - } - else - { - auto_prune($row['forum_id'], 'posted', $row['forum_flags'], $row['prune_days'], $row['prune_freq']); - } - } - - if ($row['prune_viewed']) - { - if ($use_shutdown_function) - { - register_shutdown_function('auto_prune', $row['forum_id'], 'viewed', $row['forum_flags'], $row['prune_viewed'], $row['prune_freq']); - } - else - { - auto_prune($row['forum_id'], 'viewed', $row['forum_flags'], $row['prune_viewed'], $row['prune_freq']); - } - } - } - - break; -} - -// Unloading cache and closing db after having done the dirty work. -if ($use_shutdown_function) -{ - register_shutdown_function('unlock_cron'); - register_shutdown_function('garbage_collection'); -} -else -{ - unlock_cron(); - garbage_collection(); -} - -exit; - - -/** -* Unlock cron script -*/ -function unlock_cron() -{ - $sql = 'UPDATE ' . CONFIG_TABLE . " - SET config_value = '0' - WHERE config_name = 'cron_lock' AND config_value = '" . phpbb::$db->sql_escape(CRON_ID) . "'"; - phpbb::$db->sql_query($sql); -} - -?>
\ No newline at end of file |