public function runBatch() { $results = []; /** * @var $message IProcessMessage */ foreach ($this->_batch as $taskId => $message) { $cid = $message->getInt('campaignId'); $started = $message->getInt('startedAt'); $lastSent = $message->getInt('lastSent', 0); $startId = $message->getInt('startId', null); $endId = $message->getInt('endId', 0); $additionalData = $message->getRaw('additionalData', null); $campaign = new Campaign($cid); $dataSource = $campaign->getDataSource(); if ($startId == null) { $startId = $dataSource->getLastId($cid, $taskId); } try { $dataSource->process($taskId, $cid, $started, $lastSent, $startId, $endId, $additionalData); $results[$taskId] = true; } catch (\Exception $e) { Log::error('Campaign ' . $cid . ': ' . $e->getMessage()); $results[$taskId] = false; } } $this->_batch = []; return $results; }
public function renderIndex() { $campaign = new Campaign($this->getInt('id')); $dataSource = $campaign->getDataSource(); $dataSource->setExists(); $form = (new DeferoForm('source'))->bindMapper($dataSource); foreach ($dataSource->getFixedProperties() as $name => $value) { $form->get($name)->addAttribute('disabled'); } $dataSource->configureForm($form, $campaign); if ($post = $this->request()->postVariables()) { $form->hydrate($post); if ($form->isValid() && $form->csrfCheck()) { $dataSource->hydrate($form->jsonSerialize()); $campaign->dataSourceOptions = $dataSource->jsonSerialize(); $campaign->getAttribute('dataSourceOptions')->setModified(); $campaign->saveChanges(); $msg = 'Data Source Saved'; return Redirect::to('/campaigns/' . $campaign->id())->with("msg", new TransportMessage("info", $msg)); } } return new CampaignSourceView($form); }