Система очереди сообщений

Я в процессе написания системы очереди сообщений.

Мой вопрос: лучше ли делать эту очередь с файлами или в базе данных?

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

Если это файлы, я думаю, вы просто постоянно отслеживаете папку и выполняете ее на основе этого?

БР,

Ответы

Ответ 1

Не изобретать колесо.

[Изменить: обновлено до 2014 года, теперь ссылка на кролик MQ, поскольку Айенде перешел к созданию баз данных документов, а не к очередям сообщений, но затем снова появился RabbitMQ. Я бы не писал это, но теперь в сообщениях должно быть 30 символов, поэтому мне нужно немного бить.]

Ответ 3

Каковы ваши критерии для принятия решения "Лучше"? представление? масштабируемость? надежность? Стоимость?

Основные компромиссы:

База данных - поддержка транзакций, гарантии целостности (через ограничения), более богатая поддержка запросов, вероятно, будет лучше масштабироваться (в зависимости от реализации)

файловая система - более дешевые, более простые, менее подвижные части (по крайней мере изначально)

Вы можете сначала взглянуть на существующие решения - MSMQ, брокер SQL Server, библиотеки с открытым исходным кодом, такие как очереди Rhino (http://ayende.com/Blog/archive/2008/08/01/Rhino-Queues.aspx)

Ответ 4

Как можно посмотреть в MSMQ

Ответ 5

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

Ответ 6

Вы пишете систему очереди сообщений, потому что хотите написать систему очереди сообщений; или это просто часть решения большой проблемы?

Я бы предложил не писать новую систему очередей сообщений. Вы можете использовать MSMQ или что-то еще с полки.