즉, 작업 대기열을 다시 작성하고 있습니까?
즉 인터페이스는 "do this for me"를 나타내는 레코드를 삽입하고 나중에 "this was done for"테이블 (또는 같은 테이블이 중요하지 않음) 형식을 검색합니다.
당신이 정말로 찾고있는 것은 일종의 원격 비동기 rpc 호출 인터페이스입니다. 예를 들어, 당신이 이런 식으로 재건 할 수 있다면, 그렇습니다.
나는 샐러리를 재평가하는 것을 여전히 권할 것이다. 나는 여러 차례에 걸쳐 그것을 해왔다. 그러나 나는 그것을 설정 했으므로 이전에 그것을 사용하지 않았다는 것을 충격을 준다. 장고 DB를 메시지 대기열 백엔드로 사용할 수도 있습니다 (저 볼륨 사이트에 대해서만 말하지만).
어쨌든, 특정 질문에 같이
같은 DB 테이블과 장고도 당신의 DB 커넥터도이 점에 추가적인 제약 조건을 추가합니다를 사용하여 두 개의 독립적 인 프로세스와 더 상속 문제는 없습니다.
정기적으로 DB를 폴링하여 수행 할 작업을 찾거나 메시지 (힌트 : 셀러리!)를 보내려면 작업자 프로세스 ("해결")가 필요합니다. ui 클라이언트 ("인터페이스")는 사용자가 새로 고침 할 때 DB를 확인할 수 있습니다.
구현 관점에서 보았을 때 두 프로젝트에서 코드를 완전히 공유하는 것이 가장 쉽습니다 (모든 모델, 뷰 등). 하나의 프로세스가 ui 웹 서버를 정상적인 방법으로 시작하게하고 작업자는 사용자 정의 관리 명령을 연결하는 것이 작업자의 루프를 시작하는 가장 간단한 방법 일 것입니다.
행에 쓸 때 select_for_update을 사용하지 않으면 db locking/race 조건에 약간의 문제가 발생할 수 있습니다. 또는 경쟁을 피하기 위해 .save(update_fields=zzz)을 사용할 수 있지만 1.5에 불과합니다.
정말 내 머리 속에 django-db를 대기열로 사용할 수 있습니다. 감사! – sdkfasldf