Fixed bug #12068: Scheduler: Improper skipping of running tasks in case multiple...
authorFrancois Suter <francois.suter@typo3.org>
Tue, 29 Sep 2009 20:10:28 +0000 (20:10 +0000)
committerFrancois Suter <francois.suter@typo3.org>
Tue, 29 Sep 2009 20:10:28 +0000 (20:10 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@6069 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/sysext/scheduler/class.tx_scheduler.php

index badeb43..184e382 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2009-09-29  Francois Suter  <francois@typo3.org>
+
+       * Fixed bug #12068: Scheduler: Improper skipping of running tasks in case multiple execution denied
+
 2009-09-29  Rupert Germann  <rupi@gmx.li>
 
        * Added feature #9355: Add an error and exception handler (backported from FLOW3) (thanks to Ingo Renner)
 
 2009-09-20  Francois Suter  <francois@typo3.org>
 
-       * Fixed bug #12010: Task uid should be displayed in Scheduler's BE module list view
+       * Fixed bug #12010: Scheduler: Task uid should be displayed in the BE module list view
        * Follow-up to UI-Bug #F3282: Changed icon_warning.gif to match flash messages' warning icon
        * Fixed bug #11995: Prompt for keyboard input does not get displayed in CLI scripts
        * Fixed bug #11224: Special menu directory only renders 1st level if special.value is a mount point (thanks to Xavier Perseguers)
        * Cleanup #11989: Install Tool message colors should match flash message colors
        * Cleanup #12018: Added an icon for notice-level flash messages
-       * Cleanup #12020: Made proper use of t3lib_pageRenderer for all inclusions of JS and CSS files in the Scheduler's BE module
+       * Cleanup #12020: Scheduler: Made proper use of t3lib_pageRenderer for all inclusions of JS and CSS files in the BE module
 
 2009-09-20  Benjamin Mack  <benni@typo3.org>
 
index d603d6e..008d09a 100755 (executable)
@@ -150,6 +150,11 @@ class tx_scheduler implements t3lib_Singleton {
         * @return      boolean                         Whether the task was saved succesfully to the database or not
         */
        public function executeTask(tx_scheduler_Task $task) {
+                       // Trigger the saving of the task, as this will calculate its next execution time
+                       // This should be calculated all the time, even if the execution is skipped
+                       // (in case it is skipped, this pushes back execution to the next possible date)
+               $task->save();
+               $result = true;
 
                        // Task is already running and multiple executions are not allowed
                if (!$task->areMultipleExecutionsAllowed() && $task->isExecutionRunning()) {
@@ -208,7 +213,6 @@ class tx_scheduler implements t3lib_Singleton {
                                '[scheduler]: Task executed. Class: ' . get_class($task). ', UID: ' . $task->getTaskUid(),
                                array()
                        );
-                       $result = $task->save();
 
                                // Now that the result of the task execution has been handled,
                                // throw the exception again, if any