Yeah, I do this all the time the way MrSpandex (seriously? lol) does it. On Apr 26, 5:12 pm, MrSpandex <[email protected]> wrote: > How about having task 1 queue task 2 and task 2 queuing task 3? > > On Apr 26, 5:53 pm, king <[email protected]> wrote: > > > > > > > Hi all, I encounter a queueing related challenge and need you guys' > > help badly: > > > The use case is that I have 3 tasks that I want to insert into the > > queue. Each task takes about 20 seconds to complete. The challenge is > > that task # 3 depends on task # 2, and task # 2 depends on task # 1. > > The question is, how can I insert those 3 tasks and expect task 1 be > > finished before task 2 starts, and task 2 be finished before task 3 > > starts? > > > Base upon my current knowledge about GAE, I am thinking about wrapping > > a new transaction around every single task such as follows: > > > ------------------------------------------------- > > // run task #1 > > Queue queue = QueueFactory.getDefaultQueue(); > > Transaction tx = pm.currentTransaction(); > > try { > > tx.begin(); > > > queue.add(DatastoreServiceFactory.getDatastoreService().getCurrentTransacti > > on(), > > TaskOptions().url("/task1.jsp")); > > tx.commit(); > > > } finally { if (tx.isActive()) { tx.rollback();} } > > > // run task #2 > > tx = pm.currentTransaction(); > > try { > > tx.begin(); > > > queue.add(DatastoreServiceFactory.getDatastoreService().getCurrentTransacti > > on(), > > TaskOptions().url("/task2.jsp")); > > tx.commit(); > > > } finally { if (tx.isActive()) { tx.rollback();} } > > > // run task #3 > > tx = pm.currentTransaction(); > > try { > > tx.begin(); > > > queue.add(DatastoreServiceFactory.getDatastoreService().getCurrentTransacti > > on(), > > TaskOptions().url("/task2.jsp")); > > tx.commit();} finally { if (tx.isActive()) { tx.rollback();} } > > > ------------------------------------------------- > > > where task2.jsp and task3.jsp both perform select, update and insert > > operations based upon the datastore contents from the prior tasks (ie, > > task 3 depends on task 2, and task 2 depends on task 1). > > > Is this the right way to implement the synchronous queued tasks? Is > > there a better solution out there offered by GAE? Your help is > > greatly appreciated and thanks in advance. > > > -- > > You received this message because you are subscribed to the Google Groups > > "Google App Engine for Java" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group > > athttp://groups.google.com/group/google-appengine-java?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine for Java" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group > athttp://groups.google.com/group/google-appengine-java?hl=en.
-- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
