Как пакетно обрабатывать сообщения в шине сообщений ⇐ Php
Как пакетно обрабатывать сообщения в шине сообщений
В настоящее время я использую шину обмена сообщениями Symfony для асинхронной обработки задачи создания отчета. Сначала он запросит базу данных, а затем новое сообщение для каждого отчета, который необходимо создать. В настоящее время каждое сообщение обрабатывается индивидуально, и его создание и обработка перед отправкой отчета по электронной почте может занять до 90 секунд.
Теперь я хочу вместо того, чтобы рассылать отдельное электронное письмо для каждого запущенного отчета, а просто создать одно электронное письмо и прикрепить каждый созданный отчет. Размер файлов отчетов относительно невелик, но внутренняя работа, необходимая для создания самого отчета, требует больших затрат времени и памяти.
Есть ли способ обрабатывать каждый отчет по отдельности, но каким-то образом после того, как все они будут созданы, отправлять одно сводное электронное письмо со всеми прикрепленными отчетами?
В настоящее время я просто каждый раз отправляю отдельные электронные письма. Единственное, о чем я могу думать в настоящее время, - это иметь какой-то счетчик, возможно, хранящийся в памяти (Redis) или, возможно, в базе данных, который отслеживает общее количество записей, но поскольку бывают случаи, когда отчет (после его запуска) приведет к отсутствию вывода, мы можем оказаться в ситуации, когда мы отправим 30 сообщений по шине, но создадим только 29 реальных отчетов, но нам все равно понадобится кто-то, кто будет управлять консолидированной электронной почтой.
В настоящее время я использую шину обмена сообщениями Symfony для асинхронной обработки задачи создания отчета. Сначала он запросит базу данных, а затем новое сообщение для каждого отчета, который необходимо создать. В настоящее время каждое сообщение обрабатывается индивидуально, и его создание и обработка перед отправкой отчета по электронной почте может занять до 90 секунд.
Теперь я хочу вместо того, чтобы рассылать отдельное электронное письмо для каждого запущенного отчета, а просто создать одно электронное письмо и прикрепить каждый созданный отчет. Размер файлов отчетов относительно невелик, но внутренняя работа, необходимая для создания самого отчета, требует больших затрат времени и памяти.
Есть ли способ обрабатывать каждый отчет по отдельности, но каким-то образом после того, как все они будут созданы, отправлять одно сводное электронное письмо со всеми прикрепленными отчетами?
В настоящее время я просто каждый раз отправляю отдельные электронные письма. Единственное, о чем я могу думать в настоящее время, - это иметь какой-то счетчик, возможно, хранящийся в памяти (Redis) или, возможно, в базе данных, который отслеживает общее количество записей, но поскольку бывают случаи, когда отчет (после его запуска) приведет к отсутствию вывода, мы можем оказаться в ситуации, когда мы отправим 30 сообщений по шине, но создадим только 29 реальных отчетов, но нам все равно понадобится кто-то, кто будет управлять консолидированной электронной почтой.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Невозможно подключиться к шине RabbitMQ после обновления EasyNetQ до версии 6.0.1 или новее.
Anonymous » » в форуме C# - 0 Ответы
- 54 Просмотры
-
Последнее сообщение Anonymous
-