Как справиться с аутентификацией OpenX XMLRPC / сеансами
Вопрос
У меня возникли проблемы с Openx;вот в чем проблема
OpenX::Services::Base.connection возвращает переменную класса @@connection, которая заполняется OpenX::Services::Base.connection, если она ранее не была инициализирована.
Проблема с тем, что это переменная класса, заключается в том, что она сохраняется во всех соединениях, что означает, что если наступит затишье в активности, время ожидания сеанса XMLRPC между моим сайтом и OpenX истечет, а в OpenX API нет условий для передачи данных о сеансе с истекшим сроком действия, что в любом случае было бы расточительно, поскольку перед каждым сообщением требовался бы запрос только для проверки того, что сеанс все еще действителен.
Я думаю, что лучшим способом сделать это было бы создать экземпляр соединения в начале любого запроса, которому требуется поддержка OpenX, и закрыть его в конце, гарантируя отсутствие возможности тайм-аута сеанса на стороне XMLRPC.
Кто-нибудь еще сталкивался с этим при использовании OpenX / OpenX XMLRPC?Если да, то как вы решили эту проблему?
Решение
У меня есть блок try / catch вокруг вызова OpenX RPC, и я написал переводчик исключений.Если я обнаружу тайм-аут сеанса, я снова выполню операцию входа в систему, я получу новый идентификатор сеанса и снова запущу неудачный вызов OpenX.Это немного сложнее, чем выполнение задания cron для поддержания работоспособности сеанса, но более производительно и надежно (на мой взгляд).
Другие советы
Мы столкнулись с одной и той же проблемой.Наше решение:Создайте не прошедший проверку подлинности контроллер, который выполняет несколько простых взаимодействий с OpenX API (просто для поддержания его в рабочем состоянии), и этот URL-адрес вызывается заданием cron каждые 5-10 минут.
Какое решение вы использовали?