From a08339059b06bcfb673b13a380b6f199abfb5983 Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Sun, 5 Jun 2016 14:19:07 -0400 Subject: Improve background workers --- app/Core/Queue/JobHandler.php | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'app/Core/Queue') diff --git a/app/Core/Queue/JobHandler.php b/app/Core/Queue/JobHandler.php index a2c4a2c7..f8736cce 100644 --- a/app/Core/Queue/JobHandler.php +++ b/app/Core/Queue/JobHandler.php @@ -26,6 +26,7 @@ class JobHandler extends Base return new Job(array( 'class' => get_class($job), 'params' => $job->getJobParams(), + 'user_id' => $this->userSession->getId(), )); } @@ -39,12 +40,30 @@ class JobHandler extends Base { $payload = $job->getBody(); $className = $payload['class']; + $this->prepareJobSession($payload['user_id']); if (DEBUG) { - $this->logger->debug(__METHOD__.' Received job => '.$className); + $this->logger->debug(__METHOD__.' Received job => '.$className.' ('.getmypid().')'); } $worker = new $className($this->container); call_user_func_array(array($worker, 'execute'), $payload['params']); } + + /** + * Create the session for the job + * + * @access protected + * @param integer $user_id + */ + protected function prepareJobSession($user_id) + { + $session = array(); + $this->sessionStorage->setStorage($session); + + if ($user_id > 0) { + $user = $this->userModel->getById($user_id); + $this->userSession->initialize($user); + } + } } -- cgit v1.2.3