Я работаю над проектом Rails 3, который в значительной степени опирается на очистку экрана для сбора данных, в основном с использованием Nokogiri .Я собираю по существу все те же данные, но собираю их из разных источников и со временем я буду добавлять все больше и больше.Однако я четко осознаю, что скрининг экрана может быть общеизвестно ненадежным.
В связи с этим меня интересует, как другие люди решают проблему проверки данных, а затем также получают уведомление в случае сбоя.
Мой текущий план выглядит следующим образом.
У меня будет проверка моей модели для большинства полей.Если они потерпят неудачу, я не получу плохие данные в мою систему.Хотя регистрация этого сбоя значимым образом все еще является проблемой.
Я думал о каком-то счетчике, где после стольких сбоев из определенного источника я каким-то образом отключал его.Не уверен, как отследить это.Я предполагаю, что единственный способ - это иметь поле в моей модели Source, которое считает его и может быть сброшено.
Ведение журнала - горилла 800 фунтов, я не знаю, как с этим бороться.Я мог бы просто сделать стандартную запись в журналы, но если что-то не получается, я хотел бы сохранить весь HTML, чтобы я мог разобраться.Также мне нужно как-то уведомить себя, чтобы я мог решить проблемы.Я подумал, может быть, просто создать модель для всего этого и сохранить ее в базе данных.Если бы я сделал это, мне, вероятно, пришлось бы хранить html на s3 или что-то еще.Я запускаю это на герою, так что это влияет на то, что я могу сделать.
Начинается установка и спасение блоков вокруг каждого поля.Я пытался выяснить, как это лучше кодировать, так что у меня просто нет страницы с ними, но, хотя у меня есть некоторые поля, просто вверх doc.css_at ("# что угодно"), есть довольночисло, которое требует различного форматирования или вычислений, поэтому я думаю, что имеет смысл попытаться спасти это, чтобы я мог затем записать, что пошло не так.Другой вариант - позволить исключению всплыть и поймать его, когда я пытаюсь создать модель.
В любом случае, я уверен, что я даже не думаю обо всем, но именно поэтомуЯ пытаюсь понять, как другие люди справились с этой проблемой.