Нужна асинхронная веб-задача для планировщика электронной почты - много фабричных циклов методов - PullRequest
1 голос
/ 06 мая 2011

Интересно, как лучше всего справиться с дорогой веб-задачей?

У меня есть планировщик электронной почты, который отправляет большое количество писем в любой час.В настоящее время система получает список электронных писем, создает их и развертывает их.Однако, с ростом списка это становится очень дорогим. Есть ли способ, с помощью которого я могу рассматривать это как многопоточную парадигму производитель-потребитель?

Я думал, что смогу собрать все электронные письма и свернуть каждую вторую часть веб-задачи - создание и развертывание электронной почты, передавая адрес с помощью скручивания.Тем не менее, я считаю, что система должна ждать ответа локона, прежде чем продолжить?Так что это не асинхронно ..

Каков наилучший способ сделать это?прямо сейчас у меня есть cronjob, проверяющий ежечасно на доставку писем, это нормально, но письма все создаются и доставляются одновременно, так что это может быть медленным и возможно перекрывать интервал следующего часа - у пользователей есть определенное время для полученияпоэтому я хотел бы, чтобы он доставлялся вовремя.

Должен ли я создать программу на C ++ для обработки этих потоков?Или я могу сойти с рук с более простым способом ... спасибо!

1 Ответ

0 голосов
/ 06 мая 2011

Должен ли я создать программу на C ++ для работы с потоками?Или я могу воспользоваться более простым методом ... спасибо!

Имейте в виду, что, просто создавая второй поток, вы волшебным образом не получите больше циклов из своей коробки.Если ваш ящик облагается налогом, лучшее, что вы можете сделать, - это заставить свою почтовую «ветку» иметь более низкий приоритет.Он будет работать в фоновом режиме с ухудшенной производительностью.Кроме того, переход на C ++ может или не может действительно решить что-либо.Является ли узким местом код или это просто тот факт, что что-то блокирует попытки отправить электронное письмо?

В конечном счете, если это сложная, трудоемкая задача, вы можете посмотреть на разгрузку всей обработки электронной почтыв отдельную коробку.Ваш код уже помещает электронные письма в базу данных.Иметь ящик, посвященный отправке по электронной почте всемирной проверки на электронную почту, и отправлять их при необходимости.

Я думал, что смогу собрать все электронные письма и свернуть каждое из них второй частью веб-задачи -- создание и развертывание электронной почты путем передачи адреса с помощью curl

Я не был уверен, что вы имели в виду здесь.Но знаете ли вы, будет ли скручивание куда-нибудь быстрее для этого сервера, чем просто электронная почта?Может ли это быть медленнее?

...