Восстановить работу связки парсер и Telegram bot на сайте Wordpress
На сайте работает парсер. Данные используются для:
1. Форм, где посетители могут получить информацию - вводят информацию в нужном формате. Если информация есть - получают ее. Если информации нет, то могут оставить email. Когда информация появится (после парсинга) им на почту придет уведомление.
2. Сюда же подвязан Telegram бот. Он дублирует работу форм. Берет эти же данные. Посетитель вводит данные в бот. Если они есть - получает. Если нет, то может подписаться. И в будущем получить уведомление.
Тезисно про алгоритм действия парсера:
1. Каждые 2 часа (без ограничений по времени) парсер находит новые ссылки на источник и добавляет в очередь.
2. Есть источник 2 и 1.
3. На источнике 2 файлы обрабатываются только 1 раз и больше не добавляются в очередь.
4. На источнике 1 все документы добавляются в очередь, так как на источнике 1 они могут обновляться.
5. Каждые 5 минут, скрипт смотрит есть ли документы в очереди , если нет - то отдыхает.
6. Если есть - то обрабатывает. После обработки документа проверяется время.
7. Если оно в заданном диапазоне - то высылается уведомление на email и в Telegram посетителям чьи данные удовлетворяют условиям.
Доп. иформация:
1. Функционал скриптов отделен от работы сайта.
2. Скрипты выполняются в фоновом режиме.
3. Используется система очередей (документы парсятся по-одному, а не в цикле).
Описание проблем:
1. Скрипт парсер перестал корректно работать и добавлять новые данные.
Из-за чего:
1.1. Формы на сайте на запрос показывают только данные спарсеные до поломки.
1.2. Telegram бот не показывает даже старые данные.
1.3. Форма подписки и уведомления в форме (на сайте) и в Telegram боте не работают.
Детальное описание:
Пару месяцев назад парсер перестал работать. Судя по логам, ошибкам и первичной диагностике одна из причин проблема с проверкой SSL-сертификатов при установлении HTTPS-соединения с сервером:
PHP Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed in
PHP Warning: file_get_contents(): Failed to enable crypto in
Предполагаю, что бот может не работать также по причине SSL или проблем с аунтефикацией.
Комментарий. При создании тестового сайта для этой задачи на другом сервере скрипт заработал при принудительном отключении SSL, т.е. спарсились все документы, а данные попали в БД.
При повторении действий на рабочем сайте нет. Значит есть связь с конкретным окружением (php, ssl и т.п.).
Задачи:
1. Восстановить полную работу скрипта, описанного в блоках "Общая информация" и "Тезисно про алгоритм действия парсера":
1.1. Парсер должен парсить документы со всех источников.
1.2. Формы на сайте работать, как указано в описании (показывать данные по запросу, отправлять уведомления на email).
1.2. Telegra бот должен работать, как в описании.