2009-08-11 3 views
1

Java 또는 .NET의 작업 (또는 도메인 모델에서 호출 한 '작업')을 처리하는 데 유용한 라이브러리를 찾고 있습니다. 우리는 db에서 수행 할 각 작업을 저장하고 db에서 처리되지 않은 작업을 가져 와서 처리하고 적절한 상태 ('processed OK'/ 'process error')로 db 레코드를 업데이트하는 메커니즘이 필요합니다.Java/.NET 작업 처리 라이브러리

트릭은 연산이 서로 의존 할 수 있다는 것입니다. 예를 들어, 'Operation Payment'가 처리 될 때, 시스템은 이전에 'Operation Check Payment Data'를 수행해야 함을 발견 할 수 있습니다. 따라서 DB에 새로운 작업 행을 생성하고 'Operation Payment'를 수행하고, 'Operation Check Payment Data '을 선택하고 완료하면'운영비 지불 '처리로 돌아갑니다.

내가 지금 어떻게 관리하는지 보여 드리겠습니다.

우리는 db 테이블 '연산'을 가지고 있습니다. Cron과 같은 메커니즘이 매분마다 실행되고 db에서 처리되지 않은 첫 번째 작업을 가져 와서 처리합니다. (처리 중) 시스템이 현재 작업 (A)을 수행하는 데 다른 작업 (B)이 필요하면 새로운 작업 (B) 레코드가 만들어지고 현재 작업 (A)을 수행하는 것이 중지됩니다. 다음 분 cron은 작업 A와 B를 가져옵니다. 작업 A는 처리되지 않았으므로 페치되지만 종속 작업 B는 이미 만들어져 있으므로 다시 생성되지 않습니다. 작업 B가 처리되고 상태 '처리 완료'가 db의 적절한 행에 저장됩니다. 다음 분 cron은 db에서 작업 A를 가져오고 종속 작업이 완료되기 때문에 마침내 수행 할 수 있습니다.

우리는 더 간단하고, 더 좋고, 더 우아하게 만들 수있는 방법을 찾고 있습니다.

+0

@ 마이클 : Windows Workflow Foundation (http://msdn.microsoft.com/en-us/netframework/aa663328.aspx)을 사용할 수 없습니까? –

+0

나는 그것을 체크 아웃해야한다. 비록 내가 여전히 오픈 소스 대안 (특히 자바)에 관심이있다해도. – mgamer

답변