当我使用带有Doctrine的Messenger组件时,可以保留信息。

问题描述 投票:0回答:1

我使用的是 信使组件 配置的Doctrine将消息存储在一个数据库表中。

我看到在默认配置中,表"訊息"会自动创建。其中有一个"送达地点"字段。

我想保留所有被发送的消息,但当消息被消耗后,相应的记录会被自动删除。

当我通过 php bin/console messenger:consume async -vv 我看到一个时间戳被写到"送达地点"字段,但随后整个记录被删除。

有什么方法可以使记录不被删除,并且记录发送消息的日期和时间?

symfony symfony4
1个回答
0
投票

它可能没有正确表达问题。我的应用程序使用Messenger组件发送邮件。

应用程序发送的每一封邮件都会被审核到一个文件中。我可以知道应用程序在一段时间内发送的邮件数量。

然而,审核后的数量并不真实。应用程序计算所有被发送的邮件。它不计算那些真正到达目的地的邮件。

Messenger处理队列,不知道邮件是否是由邮件服务器发送的。只是派遣。

会发生什么?邮件是从一个HTML表格中获得的。畸形的域被应用程序和Messenger计算为已发送的邮件。

我想获得的是一个指标,说明邮件服务器已经成功处理了多少邮件。

我想解决我的问题的方法不是通过应用程序或Messenger组件,而是通过从邮件服务器本身获得某种审计。

我尝试了 Jakumi 建议,但触发器会捕获所有进入队列的消息。即使是畸形的域,如 foo@hotmai[email protected]. 这个表中的计数与我记录发送邮件的审计文件相吻合。

我的问题是要统计有效发送的数量。

非常感谢大家的意见和建议。

PS:我为我的英语道歉。我已经使用了谷歌的翻译服务。等等你懂的。

© www.soinside.com 2019 - 2024. All rights reserved.