CQ 페이지를 프로그래밍 방식으로 생성해야한다는 요구 사항이 있습니다. 하지만 도전 과제는 페이지 이름/uri가 문자열 + 고유 번호 (예 : PT2000, PT2001)의 자동 생성 조합이어야한다는 것입니다.CQ에서 자동 증가 고유 번호를 생성하는 전략
사람이 여러 동시 요청이 있어도 ID가 고유 한 방식으로 CQ에서 autoincrement-id/constant를 생성하는 방법을 알려 줄 수 있습니까?
CQ 페이지를 프로그래밍 방식으로 생성해야한다는 요구 사항이 있습니다. 하지만 도전 과제는 페이지 이름/uri가 문자열 + 고유 번호 (예 : PT2000, PT2001)의 자동 생성 조합이어야한다는 것입니다.CQ에서 자동 증가 고유 번호를 생성하는 전략
사람이 여러 동시 요청이 있어도 ID가 고유 한 방식으로 CQ에서 autoincrement-id/constant를 생성하는 방법을 알려 줄 수 있습니까?
ID를 제공하고 휘발성 인스턴스 변수에서 카운터를 관리하는 서비스를 사용하면 한 스레드의 상태 변경이 다른 모든 스레드에 즉시 전달되도록 할 수 있습니다.
구현이 단일 작성자 노드에서 실행되도록 보장 할 수 있다면이 트릭을 수행해야합니다. 클러스터 시나리오에서는 노드 하나에서만 추가로 실행해야합니다.
저장소의 어딘가에서 카운터를 관리하고 jcr EventListener 역할을하는 서비스를 만드는 것이 좋습니다. 서비스는 cq : Page 유형의 상위 노드에서 NODE_ADDED 이벤트를 수신해야하며 onEvent가 호출되면 해당 지점에서 고유 ID를 할당 할 수 있습니다. onEvent()에 대한 중복 호출이 동일한 ID를 사용하지 않도록 동기화를 사용하고 싶을 것입니다.
나는 저장소에 카운터를 보관하는 아이디어를 좋아합니다. 그러나 unique_d와 같이 Node_Added 사운드를 듣는 id 생성기 서비스는 페이지가 생성 된 후에 만 생성 될 수 있습니다. 반면에 페이지 이름/uri가 uniqueId 인 페이지를 생성해야하는 경우가 있습니다. – Shan25
@ Shan25 해결책을 찾았습니까? 노드를 생성하고 그 시간에 uid 속성을 할당하는 서비스를 생성 한 다음 노드를 호출자에게 반환하는 방법은 무엇입니까? –
GUID, 그래픽 사용자 ID를 사용할 수 있습니다. 생성 된 ID의 고유성은 매우 높습니다. 참조 위키 참조 http://en.wikipedia.org/wiki/Globally_unique_identifier 및 GUID를 만들 : Create a GUID in Java
이 그래서 그냥 고유 ID를 생성하고 해당 ID를 가진 페이지를 만들 수있는 번호를 확인하는 노력을 완화합니다.
AEM이 동일한 이름 페이지에 자동으로 번호를 추가하지 않습니까?
그렇지 않은 경우 아마도 다음 번에 다시 시작할 수 있습니다. 이 경우에는 최선의 추측으로 충분합니다.
당신이 말했듯이 클러스터의이 시나리오는 특별한 처리가 필요합니다. 호출되는 http 엔드 포인트가 (일부 http 매개 변수를 통해) 마스터에서만 실행되도록하는 방법이 있습니까? 슬레이브 노드가이 고유 ID를 생성하기위한 단일 지점이 될 수있는 마스터를 호출 할 수 있다고 생각합니다. – Shan25
클러스터 된 시나리오에서 일반적으로로드 밸런서를 사용하여 제작 노드간에로드를 분산시킵니다. 이렇게하면 특정 매개 변수가 포함 된 게시 요청의 모든 종류가 마스터로 전달되도록 할 것입니다. 다른 종류의 게이트웨이 프록시 또는 웹 서버를 사용하면 트릭을 수행 할 수도 있습니다. – Thomas