我目前正在使用symfony Messenger Bus异步处理报告生成任务.它将首先查询数据库,然后为需要生成的每个报告创建一条新消息.目前,每条消息都是单独处理的,在发送邮箱报告之前,可能需要长达90秒的时间来生成和处理.
我现在要做的不是 for each 正在运行的报告发送单独的邮箱,而是简单地生成一封邮箱并附加每个生成的报告.报告文件的大小相对较小,但生成报告本身所需的后端工作既耗时又耗费内存.
有没有办法单独处理每一份报告,但在它们全部生成后,以某种方式发送一封合并的邮箱,并附上所有报告?
目前,我每次都只是发送单独的邮箱.我目前唯一能想到的就是在内存(Redis)或数据库中保存某种类型的计数器,用来跟踪记录的总数,但由于存在报告(在运行后)不会产生输出的情况,我们可能会在公交车上发送30条消息,但只生成29个实际报告,但我们仍然需要有人运行合并的邮箱.