Профессиональная консультация: решение для обмена сообщениями - PullRequest
0 голосов
/ 28 марта 2011

Я собираю приложение для массового SMS-решения.Мне удобно писать приложения на Java, Perl или PHP.

Пожалуйста, посоветуйте лучший способ обработки асинхронной доставки сообщений.

У меня есть учетные данные в сетях, например:

  • IP
  • Порт
  • Имя пользователя
  • Пароль
  • и т. Д.

для подключения SMPP.

Я смотрю на следующее:

  1. Пользователь загружает файл CSV или XLS из Интернета
  2. Номера и сообщения сохраняются в базе данных
  3. Я создаю cron для периодической проверки базы данных на наличие сообщений, отправляемых в очередь для отправки
  4. Отправляемые сообщения пересылаются в активный MQ (инструмент для обмена сообщениями APACHE).
  5. MQ пересылают вnetwork
  6. MQ получает подтверждение и статус доставки из сети и обновляет базу данных.

Просьба указать, подходит ли моя концепция или есть лучшее решение.

1 Ответ

0 голосов
/ 28 марта 2011

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

Нет конца готовых решений для очередей и обработки сообщений. Ранее я использовал BSD lpd для небольших объемов SMS / факсов. Вы также можете использовать MTA или инструмент, специально разработанный для обработки SMS, такой как Kannel. IME, имея дело с агрегаторами, предоставляющими несколько различных API-интерфейсов, оказался более эффективным для разработки моего собственного решения.

Если вы собираетесь написать собственное решение, не используйте cron.

Когда запускается ваша работа cron, вы берете только одно сообщение и обрабатываете его? Вы пытаетесь собрать все доступные сообщения и обработать их? Что если это займет больше, чем интервал между заданиями cron? Хотя подсистема обмена сообщениями (ДО вашего подписчика, а НЕ после) избавилась бы от некоторых сложностей, но она не решает всех проблем.

Правильный способ сделать это с помощью процесса-демона, работающего как один поток или с запланированным разделением.

...