I am running a script which initiates several tasks:
for i in range (0,5):
taskqueue.add(url='/example',
params={'num': i})
As far as I understand, the tasks are running in parallel. Is there anyway I can tell AppEngine to run a specific task/python file once all the tasks I just inserted to the queue are ALL finished? I thought about sending a flag to the task that was called in the last loop iteration, but if tasks run in parallel it is not guarnteed that once it is finished, the other ones were finished too.
Thanks,
Joel
When you initiate the tasks, you know how many there will be. Insert an entity into the datastore with the 'expected' count, or list of tasks. Then use either counters or markers to indicate when a task has run. Roughly, the process might look something like:
The new kinds:
Then, adjust your calling routine to do something like:
And, at the end of your tasks:
And the
isdone
task could look something like:The exact process will vary slightly depending on the specifics of your usecase, such as how many tasks your inserting.