celery
Revoking task
시간을 거스르는자
2014. 11. 24. 18:50
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) |