작업 생성자가 소비자 (작업자) 이상인 상황에서 셀러리 작업을 만들고 있습니다. 이제는 대기열이 가득 차고 근로자가 FCFS 방식으로 소비하므로 특정 작업 (즉 task_id)을 즉시 실행할 수 있습니까? 예를 들어 대한셀러리 - task_id가 주어지면, 작업을 실행하십시오.
: -
내 작업이 다음과 같은 방식으로 채워진다. [1,2,3,4,5,6,7,8,9,0]
. 이제 작업은 0 번째 인덱스에서 가져옵니다. 이제는 작업 8을 실행하려는 상황이 발생합니다. 어떻게해야합니까?
근로자는 그 작업을 실행할 필요가 없습니다 (근로자가 이미 점유되어있는 상황이있을 수 있기 때문에). 응용 프로그램에서 직접 실행할 수 있습니다. 작업이 완료되면 (작업자 또는 응용 프로그램에서 직접 수행) 대기열에서 작업이 삭제됩니다.
(task_id가 주어진 경우) 강제로 작업을 취소하는 방법을 알고 있지만 ID가 부여 된 작업을 어떻게 수행 할 수 있습니까?
난 당신이 ID에 의해 보크 작업과 해결 방법을 사용하고 (하지만 AFAIK이는 [RabbitMQ] 사용할 수 있습니다 (가장 높은 우선 순위로 브로커에 다시 https://github.com/celery을 보낼 수 있다고 생각/celery/issues/2635 # issuecomment-173597053)) –
작업을 취소하면 해당 작업에 전달 된 매개 변수를 가져올 수 있습니까? 그래서 나는 그 작업을 애플리케이션 레벨 자체에서 실행할 수있다. – PythonEnthusiast
나는 task_id에 의해 AsyncResult를 얻을 수 있고 그것으로부터 인수를 얻은 다음 그 작업을 취소하고 새로운 것을 생성 할 수 있다고 생각했다. –