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