Worklight Server에서 정기적 인 하우스 키핑을 수행하는 방법을 찾고 있습니다. 단순화 된 시나리오 :Worklight Server에서의 배경 작업
우리는 백엔드 시스템과 통신하는 어댑터가 있습니다. 사용자가 Worklight로 인증 할 때 각 서비스 호출시 백엔드에 전달되는 자격 증명을 만듭니다. 일정 기간 동안 사용하지 않으면 해당 자격 증명이 오래 될 수 있습니다. 따라서 우리가 원하는 것은 모든 활성 세션에 대한 "하트 비트"입니다. 사용자가 인증 할 때 자격 증명을 숨기는 싱글 톤 Java 객체가 있습니다. 원하는 작업은 백그라운드 작업자 스레드를 사용하여 자격 증명 목록을 반복하고 서버에 하트 비트 호출을 수행하는 것입니다. 우리가 심장 박동을 유발 어떻게 :
나는 질문은이
// in business service adapter
businessMethod(){
make service call using credentials from user's Worklight session
}
// in authentication adapter, normal adapter authentication methods and a heartbeat
authentication(){
get back-end credentials
store credentials in user's session
stash credentials in singleton
}
// how do we cal this heartbeat every x min
heartbeat(){
for each credential in singleton stash
make heartbeat call to server keeping credential alive
}
같은 어댑터 방법으로 끝낼. 거의 작동하는 Java TimerTask를 사용해 보았습니다. 자바 타이머 태스크 (TimerTask)가 내 심장 박동을 호출 할 수 있도록 준비 할 수 있습니다. 문제는 TimerTask에서 실행할 때 일반 Worklight Server 환경이 없으므로 WL.Server.invokeProcedure()를 호출하면 예외가 발생하고 이에 대해 생각하면 정상 Worklight API에 대한 액세스 권한이 없을 것입니다. 효과적으로 외국 스레드.
우리는 Worklight 6.1을 사용하여 WebSphere Liberty 서버에 배포하고 있습니다. 현재 heartbeat() 메소드를 주기적으로 호출하는 외부 미니 애플리케이션이나 쉘 스크립트를 작성하는 것이 가장 좋습니다.
더 좋은 제안이 있으십니까?
답변 해 주셔서 감사합니다. 일반적으로 나는주의 깊게 동의합니다.이 특별한 경우에있어서, 심장 박동은 기존의 유효성이 보장되고 움직이지 않는 보안 아키텍처의 정식 요구 사항입니다. – djna