2010-06-26 11 views
7

Właśnie dowiedziałem się, że zadań transakcyjnych nie można nazwać. Dlaczego? To tak, jakby nazwanie zadania było działaniem na innej grupie encji, ale zadania "bez nazwy" są w rzeczywistości nadawane nazwom generowanym przez interfejs API.Dlaczego zadania zanotowane podczas transakcji nie mogą mieć nazw?

+0

A skąd się tego nauczysz? Czy możesz podać link? – Manjoor

+1

manjoor: http://code.google.com/appengine/docs/python/taskqueue/overview.html#Task_Within_Transactions "Zadania transakcyjne nie mogą zawierać nazw użytkownika." –

Odpowiedz

9

Nazwy zadań są unikalne, więc jeśli dodasz zadanie o nazwie "foo", kolejne zadania o nazwie "foo" nie będą działać. To sprawdzenie unikalności musi być wykonane w ramach samej transakcji, więc wszystkie nazwane zadania w aplikacji musiałyby mieć tę samą grupę encji.

Jeśli próbujesz atomicznie zapisywać zadania w ramach transakcji, zadania będą musiały mieć tę samą grupę jednostek, co inne podmioty w transakcji, a kontrola unikalności nie będzie wiarygodna.

Powiązane problemy