task revoke를 한다음에 다시 scheduled task를 가져오면 이전에 revoke된것들이 포함되어있다. 알고보니 revoked가 따로 있음 -_-
아직 revoke된거를 제외한 나머지 task만 가져오는건 못찾음.. 일단 revoke 안된것만 가져오는건 두 배열을 비교하는 수 밖에..
from celery.task.control import inspect from celery.task.control import revoke i = inspect() queues = i.scheduled() queues_revoked = i.revoked() keys = queues.keys() all_tasks = [] revoked_tasks = [] tasks = [] if len(keys) > 0: all_tasks = queues[keys[0]] revoked_tasks = queues_revoked[keys[0]] for task in all_tasks: if task['request']['id'] not in revoked_tasks: revoke(task['request']['id'], terminate=True) |
'celery' 카테고리의 다른 글
[celery] How to run different multiple workers using different queue (0) | 2017.12.05 |
---|---|
worker와 publisher가 init되는 것에 대한 오해가 있었다. (0) | 2015.05.11 |
celery 오해와 진실 (0) | 2015.03.13 |
예약 푸시 (0) | 2014.11.20 |