Hi Fred,

Sorry, as I said, I've not really worked on this much lately due to lack of time. however there is a fairly detailed discussion from a couple of years ago when I first decided to get GWT modules to run as workers.
http://groups.google.com/group/Google-Web-Toolkit-Contributors/browse_thread/thread/d70bdbaeffa597b4

Though the data there is undoubtably outdated, it might still be a bit useful to you.

-jason

On Apr 24, 2009, at 8:33 AM, fvisticot wrote:


Jason,
I allready use the Gears for GWT API.
What is difficult for me to understand is how i could call GWT RPC
code from my WorkerPool.
Has you can see in the documentation the workerpool can only call
javascript file !!!! no GWT code !!!!

What i would like to do is to modify the WorkerPool demo provided by
the API:

private void doAsyncCalculation(int numDigits) {

   if (workerPool == null) {
     workerPool = Factory.getInstance().createWorkerPool();
     primeWorkerId = workerPool.createWorkerFromUrl
("pi_spigot_worker.js");
     workerPool.setMessageHandler(this);
   }
   workerPool.sendMessage("START " + numDigits, primeWorkerId);
 }

I would like to replace the line:
primeWorkerId = workerPool.createWorkerFromUrl("pi_spigot_worker.js");

With somethink like that:
First Solution: Need to modify/recreate the WorkerPool architecture..
MyWorkerPool myWorkerPool = new MyWorkerPool();
//MyWorkerPool should implements an execute method where the code is
executed...
primeWorkerId = myWorkerPool.execute();

Second Solution:
1. Creating a Java file with the call to the GWT/RCP procedure (this
method will be calle by the worker pool)
2. Compile this java file to generate a .js file
3. Call this js file with input parameters
primeWorkerId = workerPool.createWorkerFromUrl(<generated-code.js>);

Can someone help me !!!






On Apr 21, 5:50 pm, Jason Essington <[email protected]> wrote:
you could start here:http://code.google.com/docreader/#p=gwt-google- apis&s=gwt-google-
apis&t=GearsGettingStarted

-jason
On Apr 18, 2009, at 2:47 PM, fvisticot wrote:





This discussion is very interesting and very promising !!!
Is there any sample code, prototype demonstrating this capability ??
I think that calling GWT code from Worker Pool would be an added value
for GWT applications !!!
Fred

On Apr 17, 5:58 pm, Jason Essington <[email protected]> wrote:
On Apr 17, 2009, at 5:42 AM, Eric Z. Ayers wrote:

On Apr 16, 11:42 am, Jason Essington <[email protected]>
wrote:
I am going on some stale gears info here, but ...
On Apr 15, 2009, at 3:15 PM, fvisticot wrote:

I would like to call GWT RPC method from my worker pool for
synchronization process between dbs (client and server)
It seems that the WorkerPool can only call javascript file or text
script...

GWT purpose is to generate javascript as well so it is not
possible
to:
1. develop the method/class to invoke in the WorkerPool with GWT.

yeah sure, create a new GWT module for each worker. there is a
GALGWT
project that should have some Gears integration stuff in it.

In theory, it would be possible to use GWT to generate code for
workers in the worker pool, but I've never done it. If someone else
has, I'd love to hear about it.

Yup, done that. but it was back after the first Google Developer day
(right after Gears was announced). GWT was at version 1.4 (maybe in
RC) I think, and linkers didn't really exist as such.
I ended up modifying the XS template to get the worker code.

When I first did this, it only took about a day to get it up and
running, so I'd have to imagine that it'd be much easier now.

A new linker or manual trickery would
be needed to eliminate relying on browser load event logic, which is
inappropriate for WorkerPool threads.

2. compile this method with GWT compiler

yup, but you'll need to use the single script linker

Unfortunately, the reliance on browser events and window objects is present even in the SingleScriptLinker, but you could probably work
around it.

Well, this is the "don't shoot yourself in the foot" part. don't use window or any DOM methods ... which means no widgets or UI bits. but
it is possible. but again, it is possible.

3. call this method from the WorkerPool

That one is one that I'm not sure on. At one time it was possible
to
issue XHR from a worker, but I was told that was a bug. I'm not
sure
if worker XHRs have been added or not. I'm sure someone that is
more
up to date on Gears can answer that one for you.

There is now a way to call an XHR using the HttpRequest object in
WorkerPool, but again, since I haven't written code in GWT for a
WorkerPool, I haven't tried to integrate GWT RPC.

Well that's good news. theoretically then we could sync in the
background

Since GWT RPC is asyncronous, you could do the RPCs in the main
thread
and then send the result data as messages to Worker threads.

Can objects now be passed to workers? if not, then performing the RPC
in the main thread requires a second serialization/deserialization
trip, (only this time both are done in javascript) to get the result
into the worker

-jason

Reply via email to