Собираюсь создать парсер сайтов с использованием Laravel. Я не встречал нормальных примеров где можно было увидеть хорошее архитектурное решение, чтобы можно было все удобно спроектировать и в дальнейшем было легко поддерживать код и масштабировать.
Задача такая.
Допустим это будет сервис, который запускается каждый день в определенное время (по крону или вручную по команде, это не принципиально) и скачивает информацию о вакансиях по определенному тегу из разных источников. Сохраняет эту информацию в бд.
Есть такие вопросы:
- Так как собирается информация из разных источников (количество может меняться) то как этим управлять? Писать для каждого источника свой парсер и запускать их по очереди? Я здесь не знаю правильного оптимального решения.
- Есть ли для такого решения паттерн проектирования, который можно было бы удобно применить?
- Нужны ли отдельные модели и таблицы в БД для информации для полученой информации по каждому отдельному сервису который парсим или лучше все складывать в одну таблицу где будет столбец service_id с соответствующим id сервиса?
- Думаю, что нужно применять очереди. Какие задачи лучше складывать в очереди?