Index: branches/5.3.x/core/kernel/managers/scheduled_task_manager.php =================================================================== diff -u -N -r15483 -r15574 --- branches/5.3.x/core/kernel/managers/scheduled_task_manager.php (.../scheduled_task_manager.php) (revision 15483) +++ branches/5.3.x/core/kernel/managers/scheduled_task_manager.php (.../scheduled_task_manager.php) (revision 15574) @@ -1,6 +1,6 @@ getAll(); $user_id = $this->Application->RecallVar('user_id'); @@ -135,7 +135,7 @@ // remember LastTimeoutOn only for events that are still running and will be reset if ( $event_data['LastRunStatus'] == ScheduledTask::LAST_RUN_RUNNING ) { - $this->update($short_name, Array ('LastTimeoutOn' => adodb_mktime())); + $this->update($event_data, Array ('LastTimeoutOn' => adodb_mktime())); } $next_run = (int)$event_data['NextRunOn']; @@ -144,7 +144,6 @@ continue; } - $event_data['Name'] = $short_name; $this->run($event_data); } @@ -179,9 +178,15 @@ 'NextRunOn' => $cron_helper->getMatch($scheduled_task_data['RunSchedule'], $start_time), ); - $this->update($scheduled_task_data['Name'], $fields_hash); + $this->update($scheduled_task_data, $fields_hash); + $scheduled_task = $this->Application->recallObject('scheduled-task', null, Array ('skip_autoload' => true)); + /* @var $scheduled_task kDBItem */ + + $scheduled_task->LoadFromHash($scheduled_task_data); + $event->redirect = false; + $event->MasterEvent = new kEvent('scheduled-task:OnRun'); $this->Application->HandleEvent($event); $now = adodb_mktime(); @@ -199,25 +204,27 @@ 'LastRunStatus' => $event->status == kEvent::erSUCCESS ? ScheduledTask::LAST_RUN_SUCCEEDED : ScheduledTask::LAST_RUN_FAILED, ); - $this->update($scheduled_task_data['Name'], $fields_hash); + $this->update($scheduled_task_data, $fields_hash); return true; } /** * Updates scheduled task record with latest changes about it's invocation progress * - * @param string $scheduled_task_name + * @param Array $scheduled_task_data * @param Array $fields_hash * @return void * @access protected */ - protected function update($scheduled_task_name, $fields_hash) + protected function update(&$scheduled_task_data, $fields_hash) { $this->Conn->doUpdate( $fields_hash, $this->Application->getUnitOption('scheduled-task', 'TableName'), - 'Name = ' . $this->Conn->qstr($scheduled_task_name) + 'Name = ' . $this->Conn->qstr($scheduled_task_data['Name']) ); + + $scheduled_task_data = array_merge($scheduled_task_data, $fields_hash); } } \ No newline at end of file