여기 내 요구 사항을 간소화 된 버전입니다지연된 스레드 작업자와 함께 Java에서 정기적 인 작업을 예약 하시겠습니까?
저는 Java 클래스를 가지고 있습니다. 메서드를 포함하는 프로세서는 파일 서버에 연결하고 파일을 저장 한 후에 bigProcess()가 파일 서버에 연결한다는 것을 말합니다. DB 및 이후에 다른 테이블의 일부 DB 필드를 업데이트합니다.
다운로드 파일과 같은 각 하위 작업에 대해 DB에 저장하고, t1 등의 필드를 업데이트합니다. 다른 방법을 사용합니다.
프로세서 클래스는 2 시간마다 호출되며 각 호출에 대해 약 30-40 개의 요청을 처리해야합니다. 퍼포먼스를 향상시키기 위해 각 요청마다 새로운 스레드 (30 ~ 40 개의 스레드)를 계획하고 있으며 각 스레드는 bigProcess 메소드를 호출합니다.
이제 bigProcess() 메서드에서 코드 블록을 동기화해야합니다 (여기서는 업데이트 필드 메서드가 걱정됩니다.) 일부 업데이트 메서드는 selecte f1, f2, f3과 같은 행을 잠급니다 업데이트를 위해 t1에서 필드 f1, f2의 값을 & f3으로 설정하고 커밋을 발행합니다.
참고 : bigProcess() 메서드는 Processor 클래스의 인스턴스 변수를 사용하지 않습니다.
의견을 보내 주셔서 감사합니다. 이 솔루션은 JDK 1.5 이상에 적합합니다. 하지만 JDK 1.4.2를 사용하고 있습니다. 대체 방법을 제공해 주시겠습니까? –
본인은 직접 시도하지 않았지만 http://commons.apache.org/sandbox/threadpool/는 위와 비슷한 해결책을 제시합니다. – Buhb