У меня есть система, которая имеет 3 общие части, чтобы помочь моему описанию.Дизайн/архитектура системы Лучший подход
1) DATABASE - хранить все таблицы, это та же база данных будет хранить данные для других услуг, а также в том числе веб-приложений, Silverlight и т.д. ... (должен быть гибким, если на удаленном сервере, может быть экспонируется через веб-службы, если локально, можно подключить локально или через TCP на службу окон)
2) черный ящик - один процесс пункта в то время, путем введения в списке необходимых элементов из базы данных, как pipe, где u помещается в набор условий, значений для одного элемента и возвращает результаты для одного обработанного элемента.
3) WINDOWS SERVICE - для извлечения данных из базы данных, вводимых в черный ящик, с помощью предопределенных интервалов сохраняет результаты из черного ящика в базу данных. Служба может находиться на другом сервере в базе данных. Будет ошибка журнала и продолжить, если возникнет ошибка.
В среднем, служба Windows должна обработать около 5000 предметов, и для обработки 5000 предметов потребуется черный ящик около 1,5 секунды.
Моих вопросов:
а) В случае, если служба окна получить пакетный список элементов для обработки из базы данных, или он должен получить список идентификаторов, и в цикле получить каждые отдельные элементы из базы данных прежде чем перейти к черному ящику? Обратите внимание: одна и та же база данных используется и другими приложениями. Ориентировочно, я предполагаю, что база данных должна быть каким-то вызовом веб-службы.
b) Следует ли сохранить отдельный элемент сразу после обработки? Или он должен дождаться завершения обработки партии до сохранения? Поскольку сохранение каждого отдельного элемента после обработки является хорошим, когда системы внезапно терпят неудачу в середине процесса, по крайней мере обработанные сохраняются, но за счет производительности из-за его 5000 вызовов веб-службы?
Любые советы по оптимальному решению?
Cheers
Вы можете рассмотреть возможность работы с очередью MSMQ, обработкой одного элемента во время и просто удалением его после завершения обработки? –
Я не очень хорошо знаком с MSMQ, можете ли вы вкратце объяснить, как это может быть применимо? – Joshscorp
msmq гарантирует доставку предметов. не уверен, что он полностью применим здесь, но он может быть полезен, но это может быть полезно, но это усложнит дизайн –