aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOleg Pudeyev <oleg@bsdpower.com>2010-04-17 06:32:15 -0400
committerOleg Pudeyev <oleg@bsdpower.com>2011-02-12 22:05:49 -0500
commit0cfbdcc7449f1cc17b819ffe49aec88c274dd090 (patch)
treef154c14e3b56a96e20427676c3ae40cf656be11a /phpBB/cron.php
parent[feature/system-cron] Refactored cron task naming, loading and running. (diff)
downloadphpbb-0cfbdcc7449f1cc17b819ffe49aec88c274dd090.tar.gz
phpbb-0cfbdcc7449f1cc17b819ffe49aec88c274dd090.tar.bz2
phpbb-0cfbdcc7449f1cc17b819ffe49aec88c274dd090.zip
[feature/system-cron] Reorganized cron task parametrization.
PHPBB3-9596
Diffstat (limited to 'phpBB/cron.php')
-rw-r--r--phpBB/cron.php24
1 files changed, 14 insertions, 10 deletions
diff --git a/phpBB/cron.php b/phpBB/cron.php
index 5f21e105d3..2d9e6afe5d 100644
--- a/phpBB/cron.php
+++ b/phpBB/cron.php
@@ -38,9 +38,9 @@ function do_cron($run_tasks)
{
global $cron_lock;
- foreach ($run_tasks as $cron_type)
+ foreach ($run_tasks as $task)
{
- $cron->run_task($cron_type);
+ $task->run();
}
// Unloading cache and closing db after having done the dirty work.
@@ -54,7 +54,7 @@ if ($cron_lock->lock())
{
$use_shutdown_function = false;
- $run_tasks = $cron->find_all_runnable_tasks();
+ $run_tasks = $cron->find_all_ready_tasks();
}
else
{
@@ -62,14 +62,18 @@ if ($cron_lock->lock())
$use_shutdown_function = (@function_exists('register_shutdown_function')) ? true : false;
output_image();
-
- if ($cron->is_valid_task($cron_type) && $cron->is_task_runnable($cron_type))
- {
- if ($use_shutdown_function && !$cron->is_task_shutdown_function_compatible($cron_type))
- {
- $use_shutdown_function = false;
+
+ $task = $cron->find_task($cron_type);
+ if ($task) {
+ if ($task->is_parametrized()) {
+ $task->parse_parameters($_GET);
+ }
+ if ($task->is_ready()) {
+ if ($use_shutdown_function && !$task->is_shutdown_function_safe()) {
+ $use_shutdown_function = false;
+ }
+ $run_tasks = array($task);
}
- $run_tasks = array($cron_type);
}
}
if ($use_shutdown_function)