프로그램은 매번 run_status=0인 10개의 데이터를 읽기 위해 데이터베이스로 이동합니다.
작업이 실행되면 데이터베이스가 필드를 업데이트합니다
run_status=-1
는 이 작업이 잠겨 있음을 의미합니다.
물론, 작업 실행이 완료된 후에는 run_status=0으로 잠금 해제되었음을 나타냅니다.
이제 문제가 발생합니다. 게시 중에 서버가 갑자기 프로그램을 중단하는 등의 일부 예외로 인해 작업을 실행할 때 run_status=-1은 항상 잠금 상태에 있습니다. 하지만 실제로 시행되고 있지는 않습니다.
이제 이런 일이 발생하지 않도록 메커니즘을 설계해야 합니다. 현재 환경에서는 redis를 사용할 수 있습니다.
이 질문은 너무 간단하다고 생각합니다. 만료 시간이 60초인 키를 설정합니다. 매번 이 키가 존재하는지 확인하세요