我目前正在使用symfony信使总线来快速处理一个报告生成任务。它将首先查询数据库,然后为需要生成的每个报告生成一个新消息。目前每个消息都是单独处理的,在发送电子邮件报告之前,生成和处理可能需要90秒。
我现在要做的不是为每个运行的报告发送一封离散的电子邮件,而是简单地生成一封电子邮件并附上生成的每个报告。报告文件的大小相对较小,但生成报告本身所需的后端工作既耗时又占用内存。
有没有一种方法可以单独处理每个报告,但在它们全部生成后,以某种方式发送一封附有所有报告的合并电子邮件?
目前,我只是每次发送单独的电子邮件。我目前唯一能想到的是在内存(Redis)或数据库中保存某种计数器,它可以跟踪记录的总数,但由于存在报告(运行后)将导致没有输出,我们可能会在总线上发送30条消息,但只生成29个实际报告的情况下结束,但我们还是需要有人去查合并邮件
1条答案
按热度按时间eblbsuwk1#
使用Symfony Messenger处理报表和发送组合邮件
简介:
你想处理报告并发送一封合并的电子邮件吗?使用Symfony Messenger,一个数据库和Redis。这里有一个指南:
步骤:
1.消息内容:
correlationId.
的唯一ID2.数据库设置:
correlationId,
报告的数量,以及那些工作和那些没有。3.处理步骤:
4.检查是否完成:
5.邮件发送步骤:
6.配置:
注意事项: