Dokumentacja selera mówi mi, że jeśli wiele zadań jest połączonych ze sobą, wynik pierwszego zadania będzie pierwszym argumentem następnego. Mój problem polega na tym, że nie mogę uruchomić go, gdy mam zadanie, które zwraca wiele wyników.Selery: łańcuchowanie zadań z wieloma argumentami
. Przykład:
@task()
def get_comments(url):
#get the comments and the submission and return them as 2 objects
return comments, submission
@task
def render_template(threadComments, submission):
#render the objects into a html file
#does not return anything
Teraz, jeśli ja nazywam je w łańcuchu podobnych (get_comments (URL) | renderowanie_szablonu()) apply_asnc() Python rzuci TypeError: render_template() takes exactly 2 arguments (0 given)
.
Widzę, że wyniki nie są rozpakowywane i stosowane do argumentów. Jeśli zadzwonię tylko do get_comments, mogę zrobić:
result = get_comments(url)
arg1, arg2 = result
i otrzymam oba wyniki.
Użytkownicy zainteresowani rozwiązaniem problemu "zwracania argumentów pozycyjnych dla następnej funkcji" mogą być zainteresowani moją odpowiedzią http://stackoverflow.com/a/15778196/114917 –