В то время как встроенное освобождает для парсинга XML, довольно хороши, я неравнодушен к lxml.
, Но для парсинга каналов RSS, я рекомендовал бы Универсальный Синтаксический анализатор Канала , который может также проанализировать Atom. Его основное преимущество состоит в том, что это может переварить даже большую часть уродливой подачи.
Python 2.6 уже включает синтаксический анализатор JSON, но более новое версия с улучшенной скоростью доступно как simplejson.
С этими инструментами, создающими Ваше приложение, не должно быть настолько трудным.
Я бы исследовал возможность использования пространства для этого используется архитектура .
Мастер будет записывать задания в пространство (по сути, репозиторий объектов). Клиенты-потребители всегда ищут работу, и по мере того, как вакансии становятся доступными, они будут извлекать из этого пространства, обрабатывать и записывать результаты обратно в это или другое пространство (все в рамках транзакции). Вы бы пометили задания как принадлежащие определенному прогону, чтобы сгруппировать результаты.
Преимущество этого состоит в том, что это очень легко масштабируется (просто добавляя больше потребителей). Потребители должны будут определить, когда они могут работать, и им просто нужно будет настроить информацию о пространстве (как его найти). Производитель полностью изолирован от множества потребителей.
Поскольку работа обрабатывается в рамках транзакции, если потребителю не удается завершить работу, работа возвращается в пространство и становится доступной для обработки другим потребителем.
Вы можете легко обрабатывать промежуточные результаты. Производитель получает результаты из пространства и может получать промежуточные результаты по мере их появления. Вы можете легко отменить задания. Просто удалите их из пространства.
Вы можете очень легко добавить больше производителей. Они просто пишут в одно и то же пространство, и если задания имеют соответствующие теги, результаты однозначно привязываются к производителю.
К сожалению, я не уверен, какие фреймворки доступны для .Net (я из мира Java и будет использовать Javaspaces - они используют динамическое обнаружение и почти не требуют настройки). Но стоит погуглить. Возможно (если это достаточно мощно), вы можете написать производителя / потребителей C # для взаимодействия с инфраструктурой Javaspace.