Skip to content
Extraits de code Groupes Projets
Valider a0044122 rédigé par Matthieu Napoli's avatar Matthieu Napoli
Parcourir les fichiers

Added log statements in the task scheduler to debug future problems and #6868

parent 2c1d6f9a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -10,6 +10,7 @@ namespace Piwik\Scheduler; ...@@ -10,6 +10,7 @@ namespace Piwik\Scheduler;
use Exception; use Exception;
use Piwik\Timer; use Piwik\Timer;
use Psr\Log\LoggerInterface;
/** /**
* Schedules task execution. * Schedules task execution.
...@@ -62,10 +63,16 @@ class Scheduler ...@@ -62,10 +63,16 @@ class Scheduler
*/ */
private $loader; private $loader;
public function __construct(TaskLoader $loader) /**
* @var LoggerInterface
*/
private $logger;
public function __construct(TaskLoader $loader, LoggerInterface $logger)
{ {
$this->timetable = new Timetable(); $this->timetable = new Timetable();
$this->loader = $loader; $this->loader = $loader;
$this->logger = $logger;
} }
/** /**
...@@ -85,6 +92,8 @@ class Scheduler ...@@ -85,6 +92,8 @@ class Scheduler
{ {
$tasks = $this->loader->loadTasks(); $tasks = $this->loader->loadTasks();
$this->logger->debug('{count} scheduled tasks loaded', array('count' => count($tasks)));
// remove from timetable tasks that are not active anymore // remove from timetable tasks that are not active anymore
$this->timetable->removeInactiveTasks($tasks); $this->timetable->removeInactiveTasks($tasks);
...@@ -131,6 +140,8 @@ class Scheduler ...@@ -131,6 +140,8 @@ class Scheduler
*/ */
public function rescheduleTask(Task $task) public function rescheduleTask(Task $task)
{ {
$this->logger->debug('Rescheduling task {task}', array('task' => $task->getName()));
$this->timetable->rescheduleTask($task); $this->timetable->rescheduleTask($task);
} }
...@@ -166,6 +177,8 @@ class Scheduler ...@@ -166,6 +177,8 @@ class Scheduler
*/ */
private function executeTask($task) private function executeTask($task)
{ {
$this->logger->debug('Running task {task}', array('task' => $task->getName()));
try { try {
$timer = new Timer(); $timer = new Timer();
call_user_func(array($task->getObjectInstance(), $task->getMethodName()), $task->getMethodParameter()); call_user_func(array($task->getObjectInstance(), $task->getMethodName()), $task->getMethodParameter());
......
...@@ -13,6 +13,7 @@ use Piwik\Scheduler\Scheduler; ...@@ -13,6 +13,7 @@ use Piwik\Scheduler\Scheduler;
use Piwik\Scheduler\Task; use Piwik\Scheduler\Task;
use Piwik\Scheduler\Timetable; use Piwik\Scheduler\Timetable;
use Piwik\Tests\Framework\Mock\PiwikOption; use Piwik\Tests\Framework\Mock\PiwikOption;
use Psr\Log\NullLogger;
use ReflectionProperty; use ReflectionProperty;
/** /**
...@@ -50,7 +51,7 @@ class SchedulerTest extends \PHPUnit_Framework_TestCase ...@@ -50,7 +51,7 @@ class SchedulerTest extends \PHPUnit_Framework_TestCase
self::stubPiwikOption($timetable); self::stubPiwikOption($timetable);
$taskLoader = $this->getMock('Piwik\Scheduler\TaskLoader'); $taskLoader = $this->getMock('Piwik\Scheduler\TaskLoader');
$scheduler = new Scheduler($taskLoader); $scheduler = new Scheduler($taskLoader, new NullLogger());
$this->assertEquals($expectedTime, $scheduler->getScheduledTimeForMethod($className, $methodName, $methodParameter)); $this->assertEquals($expectedTime, $scheduler->getScheduledTimeForMethod($className, $methodName, $methodParameter));
...@@ -159,7 +160,7 @@ class SchedulerTest extends \PHPUnit_Framework_TestCase ...@@ -159,7 +160,7 @@ class SchedulerTest extends \PHPUnit_Framework_TestCase
// stub the piwik option object to control the returned option value // stub the piwik option object to control the returned option value
self::stubPiwikOption(serialize($timetableBeforeTaskExecution)); self::stubPiwikOption(serialize($timetableBeforeTaskExecution));
$scheduler = new Scheduler($taskLoader); $scheduler = new Scheduler($taskLoader, new NullLogger());
// execute tasks // execute tasks
$executionResults = $scheduler->run(); $executionResults = $scheduler->run();
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter