2012-10-22 13 views
10

Mam mały skrypt, który zapisuje zadania do przetworzenia. Ten skrypt wykonuje wiele zapytań do bazy danych, aby uzyskać elementy, które powinny być zakolami. Kwestia, z którą się spotykam, polega na tym, że pracownicy selekcji zaczynają podejmować zadania, gdy tylko zostaną zakotwiczone przez scenariusz. To prawda i tak powinien działać seler, ale często prowadzi to do impasu między scenariuszem a pracownikami selera.Jak odroczyć wykonanie zadań Selera?

Czy istnieje sposób, w jaki mogę skasować wszystkie moje zadania ze skryptu, ale opóźnić wykonanie do momentu ukończenia skryptu lub do określonego czasu opóźnienia?

Nie mogłem znaleźć tego w dokumentacji selera lub django-selera. czy to możliwe?

Obecnie, jako szybkie rozwiązanie, pomyślałem o dodaniu wszystkich elementów, które mają zostać przetworzone, do listy, a kiedy mój skrypt zakończy wykonywanie wszystkich zapytań, mogę po prostu powtórzyć listę i dodać kolejność zadań. Może to rozwiązałoby problem, ale gdy masz tysiące przedmiotów do zakotwiczenia, może to być zły pomysł.

Odpowiedz

1

myślę, że starają się unikać sytuacji wyścigu własnych skryptów, nie pytając o sposób, aby opóźnić wykonanie zadania.

Następnie można utworzyć zadanie, aw tym zadaniu wywołać każde z zadań za pomocą .apply(), a nie .apply_async() lub .delay(). Aby te zadania były wykonywane kolejno:

Powiązane problemy