문제

워크 라이트 서버에서 정기적으로 정기적 인 집에있는 접근 방식을 찾으려고합니다. 단순화 된 시나리오 :

우리는 백엔드 시스템과 이야기하는 어댑터가 있습니다. 사용자가 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를 사용해 보았습니다. Java TimerTask가 내 하트 비트를 호출 할 수 있음을 정렬 할 수 있습니다. 문제는 정상적인 Worklight 서버 환경이 없으며 WL.Server.InvokeProcedure ()를 던지고,이 정보를 생각하는 것에 대해 WL.Server.InvokeProcedure ()에 대한 호출이 아니라는 문제점이 있습니다. 효과적으로 이물질.

WebSphere Liberty 서버에 배포하는 Worklight 6.1을 사용하고 있습니다. 최상의 최선의 방법은 주기적으로 heartBeat () 메소드를 주기적으로 호출하는 외부 미니 응용 프로그램 또는 쉘 스크립트를 작성하는 것입니다.

더 나은 제안?

도움이 되었습니까?

해결책

나는 심장 박동 백엔드가 좋은 생각이라고 확신하지 못하고, 또한이 보안 구멍처럼 들리는 것처럼 들린다.WL 서버 및 백엔드 세션 시간 초과를 구성해야합니다.

실제 질문에 대한 답변은 exportource를 사용하여 백그라운드 작업을 만들 수 있습니다. https://www.ibm.com/developerWorks / Community / Blogs / Worklight / Entry / configuring_a_polling_event_source_to_send_push_notifications? lang= en

다른 팁

David, 나는 심장 박동을 위해 목표로하는지 확실하지 않거나 하트 비트가있을 때 어댑터 레이어에서 어떤 사용자 정의 작업을하고 싶은지 확실하지 않아도 될 것입니다.(기본 목적에 대해 조금 더 명확히 할 수 있습니까?);그러나 워크 라이트 자체가 내장 된 하트 비트 개념이 있음을 알고 있습니까? wl.client.init () 에 대한 호출의 일부로 HeartBeatInterValinSec 값으로 구성합니다. 자세한 정보는 문서 .

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top