It is currently not possible to schedule the execution of a method with parameters, see TaskScheduler.php#L98
This is required to be able to send PDF/HTML/SMS at different times, see #3706.
In a first iteration, only one parameter will be supported.
Tasks that are being scheduled are stored in the option table in the option name "TaskScheduler.timetable".
In future updates of Piwik, if a scheduled task is not needed anymore, it would not be removed from the option table.
Currently, if a task has never been executed, it will be executed as soon as the runTasks() method retrieves the new task via the Piwik_PostEvent() method.
See TaskScheduler.php#L80 :
* Task has to be executed if :
* - it is the first time, ie. rescheduledTime is not set
* - that task has already been executed and the current system time is greater than the
* rescheduled time.
The task should only be scheduled and not run.
Note: do not break the $forceScheduledTasks feature.
(In ) fixes #3704 #3706
(In ) refs #3704 #3706 r7790 missing test updates
(In ) refs #3704 #3706 r7790 time() in unit tests needs to be made invariant for slow machines
(In ) I can replicate failure locally by executing: phpunit --filter TaskScheduler
Temporarily disabling the tests that stub the Option object, which I think may be causing the problem? refs #3704 #3706
(In ) small UX chagne + trigger update refs #3704 #3706
(In ) Re-enabling tests refs #3704 #3706
(In ) refs #3704 #3706 r7790
(In ) refs #3704 #3706 r7790 restore event dispatcher & piwik options
(In ) refs #3704 #3706 r7790 restore Piwik_PDFReports_API