나는 파싱 할 데이터가있는 테이블과 여러 레코드를 취하여 처리하고 다시 저장하는 작업자가 있습니다. 또한 플래그를 '구문 분석'으로 설정합니다.장고, innodb 및 행 수준 잠금
이제 작업자 인스턴스를 여러 개 실행하고 두 작업자가 동일한 행을 선택하여 처리하지 못하도록하고 싶습니다. 그래서 나는 그것을 어떻게 든 막아야한다.
나는 django를 사용하고 있는데, MySQL 매뉴얼에서는 행 레벨 잠금을 얻는 것이 가능하지만이 작업을 올바르게 수행 할 수있는 예제는 찾을 수 없다. 유일한 사람은 그것이 매우 느린다고 말합니다 : http://djangosnippets.org/snippets/2039/
작업자가 행을 선택한 후 지금까지 업데이트 된 타임 스탬프가 될 'until lock'이라는 다른 필드가있을 수 있습니다. 이렇게하면 잠금 시간이 단축되고 (선택 후 업데이트 됨) 다른 작업자가이 행을 선택하지 못하게됩니다.이 작업자는 '잠김'상태가 아닌지 확인하지만 선택 및 업데이트 간 잠금 문제는 여전히 존재합니다.
감사합니다. ian
지금까지 가지고있는 것을 게시 할 수 있습니까? ORM을 사용하려고합니까? 아니면 SQL을 사용하고 있습니까? –
나는 장고의 ORM을 배우기 위해 가능한 한 SQL에서 멀리 떨어져있다. 저는 python/django 로의 전환을 평가하는 PHP 프로그래머입니다. 물론 원시 SQL을 사용할 준비가 된 다른 방법은 없습니다. – Ian