【发布时间】:2021-02-06 15:28:37
【问题描述】:
我正在使用 symfony 3.4(我知道,需要升级,我们正在努力)。我编写了一个 shell 命令,每个月都作为 cron 作业运行。
我有以下代码:
// ConnectivityInventoryCommand.php
protected function execute(InputInterface $input, OutputInterface $output)
{
try {
$connectivityInventoryList = $this->connectivityInventoryService->generateInventoryReport($startDate, $endDate);
$this->connectivityInventoryUploadService->uploadInventoryReport($connectivityInventoryList, $endDate);
$metrics = $this->pushMetrics($this->prepareMetrics($connectivityInventoryList));
/** @var Output $output */
$output->result(sprintf("Job finished successfully"), null, $this->metricsToArray($metrics));
} catch(Exception $exception) {
$output->result(sprintf("Job failed with exception: %s", $exception->getMessage()));
}
}
在uploadInventoryReport方法中,它连接到一个FTP服务器,上传一个文件,当文件上传成功后,执行这段代码。
foreach ($this->getPartnerEmailsAsArray($partnerConnectivityInventory->getPartnerEmail()) as $partnerEmail) {
$payload = (new TrackingPayload())
->setProperties(
(new ConnectivityInventoryProperties())
->setPartnerId($partnerConnectivityInventory->getPartnerId())
->setPartnerName($partnerConnectivityInventory->getPartnerName())
->setLanguage('en-US')
->setEmail($partnerEmail)
->setLink($absoluteFilePath)
);
$this->trackingService->track($payload);
}
跟踪服务是 Segment PHP 客户端。
我预计将跟踪 9 个分段事件,但在任何给定的运行中我都会得到 6 到 8 个之间的任何事件。我知道有 9 封电子邮件,因为如果我调试,它会进入循环 9 次,有 9 个不同的电子邮件地址。
一切都很完美,除了段事件。
我试图在 foreach 的末尾添加一个睡眠,但这仍然没有帮助。我还在execute-method 的末尾添加了一个 sleep已经过去了。
我是否遗漏了什么或没有完全正确理解?
【问题讨论】:
标签: php symfony-3.4 segment