LDAP データベースで毎日検索を行う Web アプリケーションがあります。これは、スケジュールされたタスクで春の LDAP ライブラリを介して行われます。この検索では、約 20000 件の結果が返されます。次に、問題が発生するすべてのユーザーの属性を変更したいと考えています。リレーショナルデータベースのようなグループ変更機能があればいいのにと思います(set a = x where b
だから私は2つのアプローチを試しました:
各ユーザーをループし、次のようにします。
DistinguishedName userDn = buildDn(user);
DirContextOperations dtCtx = ldapTemplate.lookupContext(userDn);
for(int i = 0; i < attributes.length; i++){
dtCtx.setAttributeValue(attributes[i], values[i]);
}
ldapTemplate.modifyAttributes(dtCtx);
これは機能しますが、非常に時間がかかります。
2 番目のアプローチは最初のアプローチと同じですが、ユーザーのリストを切り刻み、マルチスレッドで変更します。これははるかに高速に機能しますが、それでもうまくスケーリングしません。LDAP は opends データストアです。
Web アプリケーションから LDAP でバッチ変更を行うより良い方法はありますか?