Лол, это довольно просто, надеюсь, кто-нибудь еще сможет мне помочь.
from celery.bin.camqadm import camqadm
camqadm('queue.purge', queue_name_as_string)
Единственная проблема с этим, мне все еще нужно остановить celeryd перед очисткой очереди, после очистки мне нужно снова запустить celeryd для обработки задач для очереди. Обновлю этот вопрос, если мне удастся.
Мне удалось, но, пожалуйста, исправьте меня, если это не хороший способ остановить сельдерей, очистить очередь и запустить ее снова. Я знаю, что использую термин, потому что на самом деле хочу, чтобы он был прерван.
kill_command = "ps auxww | grep 'celeryd -n twitter_save' | awk '{print $2}' | xargs kill -9"
subprocess.call(kill_command, shell=True)
camqadm('queue.purge', 'twitter_save')
rerun_command = "/home/samos/Software/virt_env/twittersyncv1/bin/python %s/manage.py celeryd -n twitter_save -l info -Q twitter_save" % settings.PROJECT_ROOT
os.popen(rerun_command+' &')
send_task("socialreport.tasks.twitter_save")