sorry for the typo, the last queue.add statement should be:
queue.add(DatastoreServiceFactory.getDatastoreService().getCurrentTransacti
on(),
TaskOptions().url("/task3.jsp"));
Your help is greatly appreciated :)
On Apr 26, 2: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 at
http://groups.google.com/group/google-appengine-java?hl=en.