예약 된 작업을 검사하는 데 주로 의존하는 RabbitMQ 백엔드로 셀러리 프로젝트를 얻었습니다. 나는 다음과 같은 코드가 (이 예약 된 작업 과정의) 대부분의 시간을 위해 아무 것도 반환하지 않습니다 발견 :셀러리가 불안정한 동작을 검사합니다.
i = app.control.inspect()
scheduled = i.scheduled()
if (scheduled):
# do something
이 코드는 또한 작업 중 하나에서 실행하지만, 내가 가진 그것은 중요하지 않습니다 생각 대화식 파이썬 명령 행과 동일한 결과 (일부 예외가 있음, 아래 참조).
동시에 celery -A <proj> inspect scheduled
명령이 실패하지 않습니다. 또한 대화 형 파이썬 명령 줄에서 처음 호출 될 때이 명령도 결코 실패하지 않는다는 것을 알았습니다. 연속적인 대부분의 i.scheduled()
호출은 아무 것도 반환하지 않습니다.
i.scheduled()
처음으로 전화 할 때만 결과가 보장됩니까?
그렇다면 왜 그리고 어떻게 그리고 왜 예약 된 작업을 작업에서 검사 할 수 있습니까? 전담 작업자를 실행하고 모든 작업 후에 다시 시작 하시겠습니까? 그런 사소한 일 때문에 잔인한 것처럼 보입니다.
이 기능을 올바르게 사용하는 방법을 설명하십시오.
가능한 중복 [셀러리 예정 목록 없음을 반환하지 않습니다 (http://stackoverflow.com/questions/24236131/celery-scheduled-list-returns : 여기
당신을 도울 수있는 작은 조각이다 - 없음) – daniula