데이터를 생성하고 서버로 다시 보내는 모바일 장치 (내장 응용 프로그램이있는)의 비즈니스 데이터를 동기화 할 시스템을 설계하고 있습니다. 동기화 된 각 회선은 데이터베이스에서 특정 비즈니스 로그를 생성합니다.
내가 동기화 한 것이 비즈니스 데이터의 마지막 수정 날짜보다 낮은 날짜 (동기화 데이터 내)로 데이터를 생성하는 경우이를 무시하고 데이터베이스에 로그인을 추가해야합니다. 업로드 된 데이터가 처리되면 데이터베이스에서 데이터를 가져와 장치로 다운로드합니다.
기록 직후이 다운로드로 인해 동기화가 동기화되어야합니다. 이와 같은 것이 기존 솔루션을 대체 할만 큼 가치가 있다면 독자 / 작가 패턴을 가질 수 있습니다. 더 중요한 것은 최신 데이터를 다운로드 할 수있는 것입니다. 그 데이터는 전체적으로 페치되며, 현재 구현 된 diff는 없습니다 (나중에 나올 수 있지만 문제가되지는 않습니다).
동일한 비즈니스 오브젝트를 실행하는 중에 여러 개의 동기화가있을 수 있지만 발생 가능성은 낮지 만 처리 할 수있는 것을 선호합니다. 동기화는 몇 일 동안 재 동기화없이 내장 모바일 애플리케이션을 사용하지 않는 한 몇 초 동안 지속될 것으로 예상됩니다.
동기화 된 데이터의 양은 크지 않으며 동기화 프로세스도 아닙니다.
그래서 나는 동기화 방법에 대해 상호 배제를 사용하고, 더 정확하게는 Java를 사용하고 있으며 읽기 전용 동기화를 차단하지 않기 위해 전체 동기화 프로세스가 아닌 쓰기 방법에 동기화를 설정했습니다.
나는 알고 싶다 :
- 이 방법이 의미가 있다면? 동기화 프로세스의 양과 시간은 여전히 수용 가능합니다.
- 일반적으로 어떤 개념을 살펴 봐야합니다. 보너스 : Spring 모듈에서 이러한 개념이 구현 된 경우.