php: ldap_add является асинхронным?

Я разрабатываю приложение PHP, в котором создаются элементы ldap. И когда я добавляю элемент, мне нужно сразу получить его, потому что для какой-то цели мне нужно знать временную метку его создания.

Тогда у меня есть:

  • ldap_add ($ ds, $ dn, $ data)
  • ldap_search ($ ds, $ root, $ some_filter)

Почти каждый раз, я получаю правильный результат в поиске, но это случается со мной вдвое:
— правильная запись была создана (я мог проверить это позже)
— поиск ничего не нашел.

После некоторого поиска в Google я обнаружил, что есть две функции C для добавления записи: ldap_add и ldap_add_s, первая из которых асинхронная.
Моя лучшая догадка это что:

  • PHP ldap_add вызывает функцию C ldap_add (асинхронный)
  • он возвращает «true», чтобы сказать «это будет правильно» (но не «это было правильно»)
  • в некоторых случаях мой поиск происходит, когда ldap_add все еще работает в фоновом режиме, и тогда я получаю пустой результат.

Будет ли это объяснение иметь смысл? Есть ли другое решение, которое немного подождет, если поиск ничего не даст, и попробуйте снова?

Лучший,

V.

1

Решение

Нет использования PHP ldap_add_s : https://github.com/php/php-src/blob/master/ext/ldap/ldap.c#L1444

Таким образом, пока ваш сервер LDAP не врет, что может произойти с некоторой конфигурацией с несколькими хозяевами, ваш результат поиска должен содержать только что добавленное вами значение.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector