Мы написали механизм обмена данными между Битрикс CRM и нетиповой конфигурацией через Rest API Битрикса. Реализация — через очередь оффлайн-событий; то есть, мы создаем бинды на события (ONCRMCOMPANYADD, ONCRMCOMPANYUPDATE, ONCRMCOMPANYDELETE и так далее) и время от времени читаем очередь этих событий, загружая данные в информационную базу.
Факт того, что событие произошло и было добавлено в очередь оффлайн-событий, мы получаем от Push & Pull сервера Битрикса. Для этого мы поддерживаем соединение с ним и, как только получаем какие-то данные — анализируем их. Если получаем сообщение о новом оффлайн-событии — читаем очередь событий и загружаем измененные или добавленные данные.
Примерно так же работает стандартное расширение Битрикса для типовых конфигураций. Однако в нашем случае есть проблема: время от времени (обычный интервал — порядка суток, но это не обязательное условие) сервер P&P перестает сообщать о новых событиях. При этом соединение успешно работает, как и прежде; мы не получаем от P&P сервера никаких ошибок — только пустые строки (которые интерпретируются как отсутствие новых данных).
Если произвести повторное подключение к серверу P&P — механизм начинает правильно работать: то есть, мы получим сообщение о следующем событии, которое произойдет, и всех последующих — пока, в какой-то момент, механизм снова не «зависнет».
Мы временно решили проблему изолентой переподключением к серверу P&P раз в десять минут, но хотелось бы чего-то более надежного :)
Писали в техподдержку, однако ответа пока не получили. Возможно, кто-то сталкивался с подобным и может подсказать, как расследовать такой кейс?