From a00441220d48d7de88e4072950d8088a323e91bb Mon Sep 17 00:00:00 2001 From: Matthieu Napoli <matthieu@mnapoli.fr> Date: Mon, 16 Feb 2015 12:58:03 +1300 Subject: [PATCH] Added log statements in the task scheduler to debug future problems and #6868 --- core/Scheduler/Scheduler.php | 15 ++++++++++++++- tests/PHPUnit/Unit/Scheduler/SchedulerTest.php | 5 +++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/core/Scheduler/Scheduler.php b/core/Scheduler/Scheduler.php index 68c78135ad..7156e1be9c 100644 --- a/core/Scheduler/Scheduler.php +++ b/core/Scheduler/Scheduler.php @@ -10,6 +10,7 @@ namespace Piwik\Scheduler; use Exception; use Piwik\Timer; +use Psr\Log\LoggerInterface; /** * Schedules task execution. @@ -62,10 +63,16 @@ class Scheduler */ private $loader; - public function __construct(TaskLoader $loader) + /** + * @var LoggerInterface + */ + private $logger; + + public function __construct(TaskLoader $loader, LoggerInterface $logger) { $this->timetable = new Timetable(); $this->loader = $loader; + $this->logger = $logger; } /** @@ -85,6 +92,8 @@ class Scheduler { $tasks = $this->loader->loadTasks(); + $this->logger->debug('{count} scheduled tasks loaded', array('count' => count($tasks))); + // remove from timetable tasks that are not active anymore $this->timetable->removeInactiveTasks($tasks); @@ -131,6 +140,8 @@ class Scheduler */ public function rescheduleTask(Task $task) { + $this->logger->debug('Rescheduling task {task}', array('task' => $task->getName())); + $this->timetable->rescheduleTask($task); } @@ -166,6 +177,8 @@ class Scheduler */ private function executeTask($task) { + $this->logger->debug('Running task {task}', array('task' => $task->getName())); + try { $timer = new Timer(); call_user_func(array($task->getObjectInstance(), $task->getMethodName()), $task->getMethodParameter()); diff --git a/tests/PHPUnit/Unit/Scheduler/SchedulerTest.php b/tests/PHPUnit/Unit/Scheduler/SchedulerTest.php index 7c06370b07..2547d3e5e9 100644 --- a/tests/PHPUnit/Unit/Scheduler/SchedulerTest.php +++ b/tests/PHPUnit/Unit/Scheduler/SchedulerTest.php @@ -13,6 +13,7 @@ use Piwik\Scheduler\Scheduler; use Piwik\Scheduler\Task; use Piwik\Scheduler\Timetable; use Piwik\Tests\Framework\Mock\PiwikOption; +use Psr\Log\NullLogger; use ReflectionProperty; /** @@ -50,7 +51,7 @@ class SchedulerTest extends \PHPUnit_Framework_TestCase self::stubPiwikOption($timetable); $taskLoader = $this->getMock('Piwik\Scheduler\TaskLoader'); - $scheduler = new Scheduler($taskLoader); + $scheduler = new Scheduler($taskLoader, new NullLogger()); $this->assertEquals($expectedTime, $scheduler->getScheduledTimeForMethod($className, $methodName, $methodParameter)); @@ -159,7 +160,7 @@ class SchedulerTest extends \PHPUnit_Framework_TestCase // stub the piwik option object to control the returned option value self::stubPiwikOption(serialize($timetableBeforeTaskExecution)); - $scheduler = new Scheduler($taskLoader); + $scheduler = new Scheduler($taskLoader, new NullLogger()); // execute tasks $executionResults = $scheduler->run(); -- GitLab