Тайм-аут LDAP с использованием PHP, если я не ограничить его - РЕДАКТИРОВАТЬ: 1000 предел в результатах ldap - PullRequest
0 голосов
/ 15 сентября 2011

Доброе утро, ребята,

У меня есть несколько сценариев, которые общаются с корпоративным LDAP (MS Active Directory). Я обнаружил, что если я не ограничиваю свои скрипты командами sleep (), я получаю следующую ошибку:

Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Can't contact LDAP server in..

То, что делает большинство моих сценариев, - это получать элементы объектов Active Directory, а затем находить элементы этих результатов.

У меня есть функция, называемая getMembers (), которая вызывает себя при запуске через извлеченные элементы, пока не останется результатов.

Я обнаружил, что должен:

sleep(1);
getMembers();

Чтобы моя привязка не потерпела неудачу и истекло время ожидания.

Мне интересно, есть ли лучший способ выбить дерьмо из ldap, не вышибая меня на полпути через мои сценарии. 1-секундная пауза приведет к тому, что моему сценарию потребуется 97 часов для обработки всех его элементов, и я хотел бы сократить это время вдвое, чтобы я мог запустить его в выходные дни.

Спасибо

РЕДАКТИРОВАТЬ --------------------------

Итак, в ходе исследований я обнаружил, что в LDAP существует ограничение в 1000 записей, а PHP не может выводить результаты из LDAP. Благодаря тому, что я запрашиваю LDAP (1 запрос за раз), я могу рассчитывать на каждую итерацию, которая вызывает LDAP, и когда этот счетчик достигает 900 или около того, я сплю на минуту. Таким образом, я получаю больше результатов. Однако я не смог найти решение для подкачки ldap в PHP.

...