service === null) { $this->service = service('collectorservice'); $fields = ['trafficinfo_uid', 'in', 'out', 'raw_in', 'raw_out']; $filters = ['trafficinfo_uid']; $this->service->getFormService()->setFormFields($fields); $this->service->getFormService()->setFormRules('create', $fields); $this->service->getFormService()->setFormFilters($filters); $this->service->getFormService()->setFormOptions($filters); $this->service->getFormService()->setBatchjobFilters($filters); } $this->addActionPaths($this::PATH); } protected function createDTO(array $formDatas): CollectorDTO { return new CollectorDTO($formDatas); } public function execute(): void { try { $trafficService = service('trafficservice'); foreach ($trafficService->getEntities(['status' => STATUS['AVAILABLE']]) as $trafficEntity) { $data = $this->service->getCalculatedData($trafficEntity); $entity = $this->service->create($this->createDTO($data)); $message = "트래픽 계산 및 저장 완료 (UID: {$entity->getTrafficInfoUID()}), In: {$entity->getIn()} Kb/s / Out: {$entity->getOut()} Kb/s"; log_message('info', $message); echo $message . "\n"; } } catch (ValidationException $e) { log_message('error', "트래픽 계산 및 저장 검증오류:{$e->getMessage()}"); } catch (\Exception $e) { log_message('error', "트래픽 계산 및 저장 실패오류:{$e->getMessage()}"); } } }