Dlaczego seler dodaje tysiące kolejek do rabbitmq, które wydają się utrzymywać długo po zakończeniu zadań?

Używam selera z zapleczem rabbitmq. Tworzy tysiące kolejek z 0 lub 1 pozycjami w królikach w taki sposób:

$ sudo rabbitmqctl list_queues
Listing queues ...
c2e9b4beefc7468ea7c9005009a57e1d        1
1162a89dd72840b19fbe9151c63a4eaa        0
07638a97896744a190f8131c3ba063de        0
b34f8d6d7402408c92c77ff93cdd7cf8        1
f388839917ff4afa9338ef81c28aad75        0
8b898d0c7c7e4be4aa8007b38ccc00ea        1
3fb4be51aaaa4ac097af535301084b01        1

Wydaje się to nieskuteczne, ale zauważyłem, że kolejki te utrzymują się długo po zakończeniu przetwarzania.

Znalazłem zadanie, które wydaje się to robić:

@celery.task(ignore_result=True)
def write_pages(page_generator):  
    g = group(render_page.s(page) for page in page_generator)
    res = g.apply_async()

    for rendered_page in res:
        print rendered_page # TODO: print to file

Wydaje się, że ponieważ te zadania są wywoływane w grupie, są one wrzucane do kolejki, ale nigdy nie są zwalniane. Wyraźnie jednak pochłaniam wyniki (ponieważ mogę je wyświetlać, gdy je przeglądam)res. Nie rozumiem więc, dlaczego te zadania utrzymują się w kolejce.

Dodatkowo zastanawiam się, czy tworzone kolejki dużych liczb wskazują, że robię coś złego.

Dziękujemy za pomoc!

questionAnswers(2)

yourAnswerToTheQuestion