public function fire(Job $job, array $data) { $command = PostToCallback::create($data['image_id']); $command->execute(); // End job $job->delete(); }
public function fire(\Illuminate\Queue\Jobs\Job $job, array $data) { if (!$this->index_product_repo->updateIndex($data['fields'], false)) { throw new \RunTimeException('Index operation failed: ' . $this->index_product_repo->errors()); } $job->delete(); }
public function fire(Job $job, $data) { // Stop if over three attempts if ($job->attempts() > 3) { Log::info("Job Delete: " . serialize($job)); $job->delete(); } // Begin try { $image = Image::find($data['image_id']); $corners = $image->getBoundingBox(); $rgba = Litmus::getAverageColor($image->url, $corners[0], $corners[1], $corners[2], $corners[3]); //Update Image $image->red = $rgba->red; $image->green = $rgba->green; $image->blue = $rgba->blue; $image->alpha = $rgba->alpha; $image->status = "done"; $image->save(); Event::fire('image.done', [$image]); } catch (\Exception $e) { Log::error($e->getMessage()); $job->release(); } // Success, delete job... $job->delete(); }
/** * Sends an email * * @param \Illuminate\Queue\Jobs\Job $sqsJob * @param array $data * * @return void */ public function fire($sqsJob, $params) { // Get the needed parameters $domain = $params[0]; $view = $params[1]; $data = $params[2]; $messageData = $params[3]; $driver = isset($params[4]) ? $params[4] : null; // If using a specific driver, set it now if (!is_null($driver)) { Config::set('mail.driver', $driver); } // If not using the mailgun driver, send normally ignoring the domain if (Config::get('mail.driver') !== 'mailgun') { $this->send($view, $data, $messageData); // Otherwise, adjust the mailgun domain dynamically } else { // Backup your default mailer $backup = Mail::getSwiftMailer(); // Setup your mailgun transport $transport = new MailgunTransport(Config::get('services.mailgun.secret'), $domain); $mailer = new Swift_Mailer($transport); // Set the new mailer with the domain Mail::setSwiftMailer($mailer); // Send your message $this->send($view, $data, $messageData); // Restore the default mailer instance Mail::setSwiftMailer($backup); } $sqsJob->delete(); }
public function fire(Job $job, $data) { $doSuccess = false; // push to url if ($data['url']) { $curl = new Curl(); $curl->post($data['url'], $data['data']); $doSuccess = $curl->ok(); if (!$doSuccess) { Log::warning('callback.push.url', array('message' => 'callback push failed to ' . $data['url'], 'order' => $data['data']['order'])); } } // push to email if ($data['email']) { Mail::send(array('text' => 'ff-bank-em::demo.email_callback'), $data, function (Message $message) use($data) { $message->to($data['email'])->subject('Bank Emulator Payment Message'); }); $doSuccess = 0 == count(Mail::failures()); if (!$doSuccess) { Log::warning('callback.push.email', array('message' => 'callback push failed', 'order' => $data['data']['order'])); } } // release, if error if ($doSuccess) { Log::info('callback.push', array('order' => $data['data']['order'])); $job->delete(); } else { Log::warning('callback.push', array('order' => $data['data']['order'])); if ($job->attempts() > 10) { $job->delete(); } else { $job->release(60); } } }
/** * @param Job $syncJob Laravel queue job * @param $arguments * @return bool * @throws \Unifact\Connector\Exceptions\HandlerException */ public function fire(Job $syncJob, $arguments) { try { $job = $this->jobRepo->findById($arguments['job_id']); $job->setPreviousStatus($arguments['previous_status']); $handler = forward_static_call([$job->handler, 'make']); $this->logger->debug("Preparing Job.."); if (!$handler->prepare()) { $this->logger->error('Handler returned FALSE in prepare() method, see log for details'); // delete Laravel queue job $syncJob->delete(); return false; } $this->logger->debug("Handling Job.."); if ($handler->handle($job) === false) { $this->logger->error('Handler returned FALSE in handle() method, see log for details'); // delete Laravel queue job $syncJob->delete(); return false; } $this->logger->debug("Completing Job.."); $handler->complete(); $this->logger->info('Finished Job successfully'); } catch (\Exception $e) { $this->oracle->exception($e); $this->logger->error('Exception was thrown in JobQueueHandler::fire method.'); $this->jobRepo->update($arguments['job_id'], ['status' => 'error']); // delete Laravel queue job $syncJob->delete(); return false; } // delete Laravel queue job $syncJob->delete(); return true; }
/** * @param Job $job * @param array $data */ public function fire(Job $job, $data) { Log::info('Получен запрос через очередь с параметрами:', $data); Validators::ValidateRequest($data); $mainHandler = new MainHandler(); $mainHandler->processRequest($data); $job->delete(); }
public function fire(Job $job, array $data) { if ($this->filesystem->exists($data['filepath'])) { $this->filesystem->delete($data['filepath']); } // End job $job->delete(); }
public function fire(Job $job, array $data) { // Process Image $command = ImageColorAnalysis::create($data['image_id']); $command->execute(); // End job $job->delete(); }
/** * Called by the illuminate queue. * * @param \Illuminate\Queue\Jobs\Job $job * @param array $data Data that has been added by the Laravel handler. * * @return void */ public function fire(IlluminateJob $job, array $data) { if (empty($this->transport)) { $this->transport = new $data['transport']['class']($data['transport']['options']); } $this->transport->send($data['url'], $data['data'], $data['headers']); $job->delete(); }
public function processBorrowerImportJob(Job $job, $data) { $id = $data['id']; $borrowerPayment = $this->paymentQuery->create()->findOneById($id); if ($borrowerPayment) { $this->processBorrowerPayment($borrowerPayment); } $job->delete(); }
public function fire(IlluminateJob $job, $data) { $client = new Client($data['client']); $transport = new $data['transport']['class'](); foreach ($client->servers as $url) { $transport->send($url, $data['message'], Client::getHeaders($client)); } $job->delete(); }
public function fire(Job $job, $models) { foreach ($models as $model) { list($class, $id) = explode(':', $model); $model = new $class(); $model->deleteDoc($id); } $job->delete(); }
/** * Handle the queue job. * * @param LaravelJob $laravelJob * @param mixed $data */ public function fire(LaravelJob $laravelJob, $data) { $job = null; try { $job = $this->jobs->find($data['job_id']); // Check if the job is valid (not expired and ready). This might // happen on some timing edge cases. if (!$job->ready()) { $laravelJob->delete(); return; } // Look for a task handler $handler = $this->resolver->resolve($job); if ($handler->getSpec() instanceof Spec) { $result = $handler->getSpec()->check($job->getData()); if ($result->failed()) { $laravelJob->delete(); $this->jobs->giveUp($job, 'Task data does not pass Spec.'); return; } } // Execute the handler $this->jobs->started($job, "Task handler started.\n"); $handler->fire($job, $this->scheduler); if ($handler->isSelfDeleting()) { $this->jobs->delete($job->id); } else { $this->jobs->complete($job); } } catch (ModelNotFoundException $e) { // Here we just cancel the queue job since there is no point in // retrying. $laravelJob->delete(); } catch (UnresolvableException $e) { // Here we just cancel the queue job since there is no point in // retrying. $laravelJob->delete(); $this->jobs->giveUp($job, 'Task handler was not found'); } catch (Exception $e) { // If we were not able to find the job, just give up. if (is_null($job)) { $laravelJob->delete(); return; } if ($job->hasAttemptsLeft()) { $this->jobs->release($job); $laravelJob->release(); return; } $this->jobs->fail($job, 'Exception: ' . $e->getMessage()); $laravelJob->delete(); } }
public function fire(\Illuminate\Queue\Jobs\Job $job, array $data) { if (empty($data['product_id']) || empty($data['add_type_id']) || empty($data['add_profile']) || !is_array($data['add_profile'])) { throw new \InvalidArgumentException('Job data missing product_id or add_profile'); } $add_attributes = $data['add_profile']; $add_attributes['product_id'] = $data['product_id']; $add_attributes['add_type_id'] = $data['add_type_id']; if (!$this->add_repo->create($add_attributes)) { throw new \RunTimeException('Error saving Add to database: ' . $this->add_repo->errors()); } $job->delete(); }
public function fire(Job $job, $models) { try { foreach ($models as $model) { list($class, $id) = explode(':', $model); $model = $class::findOrFail($id); $model->refreshDoc($model); } $job->delete(); } catch (ModelNotFoundException $e) { $job->release(60); } }
/** * @param Job $job * @param mixed $models */ public function fire(Job $job, $models) { $loggerContainerBinding = $this->config->get('logger', 'menthol.flexible.logger'); $logger = $this->app->make($loggerContainerBinding); foreach ($models as $model) { list($class, $id) = explode(':', $model); $logger->info('Deleting ' . $class . ' with ID: ' . $id . ' from Elasticsearch'); $model = new $class(); if (method_exists($model, 'getProxy')) { $model->deleteDoc($id); } } $job->delete(); }
/** * @param Job $job * @param array $data * * @throws Exception */ public function fire($job, $data) { $this->job = $job; if ($data['test1'] != 1 || $data['test2'] != 2) { throw new Exception("Parameters passed incorrectly" . var_export($data, true)); } if (isset($data['delete'])) { $this->job->delete(); return; } if (isset($data['release'])) { $this->job->release(); return; } }
/** * Delete the job from the queue. * * @return void */ public function delete() { parent::delete(); if (isset($this->job->pushed)) { return; } }
/** * Release the job back into the queue. * * @param int $delay */ public function release($delay = 1) { parent::release($delay); if ($delay < 1) { $delay = 1; } $this->adapter->changeMessageVisibility($this->job->getReceiptHandle(), $delay); }
/** * Release the job back into the queue. * * @param int $delay * @return void */ public function release($delay = 0) { parent::release($delay); if (!$this->pushed) { $this->delete(); } $this->recreateJob($delay); }
/** * Delete the job from the queue. * * @return void */ public function delete() { parent::delete(); if (isset($this->job->pushed)) { return; } $this->iron->deleteMessage($this->getQueue(), $this->job->id); }
/** * Process a given job from the queue. * * @param \Illuminate\Queue\Jobs\Job $job * @param int $delay * @return void */ public function process(Job $job, $delay) { try { // First we will fire off the job. Once it is done we will see if it will // be auto-deleted after processing and if so we will go ahead and run // the delete method on the job. Otherwise we will just keep moving. $job->fire(); if ($job->autoDelete()) { $job->delete(); } } catch (\Exception $e) { // If we catch an exception, we will attempt to release the job back onto // the queue so it is not lost. This will let is be retried at a later // time by another listener (or the same one). We will do that here. $job->release($delay); throw $e; } }
public function fire(Job $job, $models) { $loggerContainerBinding = $this->config->get('logger', 'menthol.flexible.logger'); $logger = $this->app->make($loggerContainerBinding); foreach ($models as $model) { list($class, $id) = explode(':', $model); $logger->info('Indexing ' . $class . ' with ID: ' . $id); try { $model = $class::findOrFail($id); if (method_exists($model, 'getProxy')) { $model->refreshDoc($model); } } catch (Exception $e) { $logger->error('Indexing ' . $class . ' with ID: ' . $id . ' failed: ' . $e->getMessage()); $job->release(60); } } $job->delete(); }
/** * @param Job $job * @param array $data */ public function fire(Job $job, array $data) { if (empty($data['url'])) { $job->delete(); Log::info('Не указан url для отправки callback.'); return; } $ch = curl_init($data['url']); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERPWD, $data['merchant_id'] . ':' . $data['merchant_pass']); if ($data['sign'] != '') { curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-Api-Signature:' . $data['sign'])); } unset($data['url'], $data['merchant_id'], $data['merchant_pass'], $data['sign']); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $result = curl_exec($ch); $httpError = curl_error($ch); Log::info('Ошибки curl:', array('httpError' => $httpError)); if (!empty($result) && strpos($result, '<result_code>0</result_code>') !== false) { Log::info('Успешно вызван callback с ответом 0', array('result' => $result)); $job->delete(); return; } Log::info('Результат curl:', array('result' => $result)); $cnt = $job->attempts(); if ($cnt > 50) { $job->delete(); return; } Log::info('Перевыставлена задача по отправке curl, попытка номер ' . $cnt, $data); $job->release(60 * $cnt); }
/** * @param Job $job * @param array $data */ public function fire(Job $job, $data) { $signalId = $data['signalId']; $signalResult = ResultSignal::find($signalId); if ($signalResult == null) { $job->delete(); exit; } $url = $data['url']; $signalSid = $signalResult->signal_sid; $isSend = $this->makeCurl($url, $signalSid); //Если отправлен результат то удаляем задачу и ставим флаг if ($isSend) { $job->delete(); $signalResult->setFlagUrlTrue(); Log::info('Результат отправлен по http.'); } $cnt = $job->attempts(); if ($cnt > 50) { $job->delete(); Log::info('Выполнено ' . $cnt . ' попыток отправить curl. Задача удалена.', $data); exit; } Log::info('Перевыставлена задача, попытка номер ' . $cnt, $data); $job->release(60); }
/** * Release the job back into the queue. * * @param int $delay * * @return void */ public function release($delay = 0) { parent::release($delay); $this->delete(); $this->setAttempts($this->attempts() + 1); $body = $this->payload(); /* * Some jobs don't have the command set, so fall back to just sending it the job name string */ if (isset($body['data']['command']) === true) { $job = unserialize($body['data']['command']); } else { $job = $this->getName(); } $data = $body['data']; if ($delay > 0) { $this->connection->later($delay, $job, $data, $this->getQueue()); } else { $this->connection->push($job, $data, $this->getQueue()); } }
/** * @param Job $job * @param array $data */ public function fire(Job $job, array $data) { if (empty($data['email'])) { $job->delete(); Log::info('Не указан url для отправки callback.'); return; } switch ($data['status']) { case Bill::C_STATUS_EXPIRED: $data['textStatus'] = ' просрочен.'; break; case Bill::C_STATUS_PAID: $data['textStatus'] = ' оплачен.'; break; case Bill::C_STATUS_REJECTED: $data['textStatus'] = ' отменён.'; break; default: $data['textStatus'] = null; } $this->email = $data['email']; $this->billId = $data['bill_id']; $this->textStatus = $data['textStatus']; Mail::send('ff-qiwi-gate::emails.sendCallbackMail', $data, function (Message $message) { $message->to($this->email)->subject('Счёт №' . $this->billId . $this->textStatus); }); $cntSendFails = count(Mail::failures()); if ($cntSendFails == 0) { $job->delete(); Log::info('Почта отправлена.', $data); return; } $cnt = $job->attempts(); if ($cnt > 50) { $job->delete(); return; } Log::info('Перевыставлена задача по отправке почты, попытка номер ' . $cnt, $data); $job->release(60 * $cnt); }
/** * Handle a queued e-mail message job. * * @param \Illuminate\Queue\Jobs\Job $job * @param array $data * @return void */ public function handleQueuedMessage($job, $data) { $this->send($data['view'], $data['data'], $this->getQueuedCallable($data)); $job->delete(); }
/** * Release the job back into the queue. * * @param int $delay * @return void */ public function release($delay = 0) { parent::release($delay); }