Hi Mike,

> I am a little confused by your response, since my question 
> was in regard to
> sleep( milliseconds), which I need in order to save CPU in a loop that
> checks resource availability. Any browser would wait just 
> fine for a couple
> of hundred milliseconds.

If this is the case, why put the check into a loop at all?

If the system needs a tiny bit of time before the resource can respond, then
just let it run as is.

I understand "why" you want a sleep() function, but I would consider
carefully it's implications before using it in a Web application.

 
> BTW, I am doing exactly what you suggest, rethinking my 
> application. Until
> now it worked just fine, under Tango 2000, never had a 
> problem. It still
> works OK now, under Witango 5 in a test environment, but I 
> feel uneasy to
> move it into the production because I did not test it in a 
> real, multiuser
> environment. The big problem is I lack understanding of how 
> to deal with
> multi-threading when no controlling mechanism is available 
> for managing
> threads.

I guess we must be missing a piece of the puzzle here, as to specifically
what multi-threading concerns you have.

If the issue revolves around a particular database query that has a habit of
taking a long time, then you will be happy to learn that "threading" under
Witango 5.x Servers are greatly improved.

Tango2000 used "co-operative" threading, whereas Witango 5.x uses
"pre-emptive" threading. This is an automatic build-in feature of the
Server.

If resources get scarce, then Witango will respond with greater speed and
efficiency then Tango2000 ever can.

The CPU usage spawned by the "waiting" will be reasonably managed - if it's
not, then this is the point where "I" would rethink what I'm doing.

But yes, managing your own Threading is a great advantage too - I also do
.NET development. But even with this kind of power, if a process is going to
routinely take a long time, then it's time to rethink the application
design.

I recently did a Custom Reporting application. Another department of my
customer was supplying these huge XML files full of Financial figures
(200mb+), and my Web app was dynamically parsing the XML for particular
content and displaying them for the web - simple enough work.

But....the processing was incredibly time/CPU intensive for each request,
because the files were so huge, that the user was waiting up to 10 seconds
for responses.

So, I did a complete rebuild of the project where I built a Windows Service
application that pre-parsed the XML files into smaller more manageable
chunks. Instead of one big file, I now have 200 tiny ones.

The project got carried away because the sample XML files I started with
were less than 1mb - next time I'll think further ahead.

Hope this helps....



> Mike Bravu.
> 
> -----Original Message-----
> From: Scott Cadillac [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, April 22, 2004 11:03
> To: [EMAIL PROTECTED]
> Subject: RE: Witango-Talk: Sleep & While + explanations
> 
> Hi Mike,
> 
> With regards to your wishful thinking of a sleep() function 
> in Witango, I
> think you need to rethink your application a bit.
> 
> Regardless of the development platform that may, or may not, support a
> "sleep" or "wait" process - the client component (browser) of 
> your "Web"
> application has limited tolerance for such a thing.
> 
> Browsers don't like waiting. Although you can craft some 
> special HTTP output
> to make a browser wait (checkout the "Push" attribute), the 
> results are not
> always User friendly. 
> 
> I would suggest building a special webpage/window that 
> periodically "checks"
> with the Server if the requested resource is free yet. You 
> can do this with
> JavaScript, or with a META Refresh - and also provide Users 
> with intelligent
> messages. 
> 
> I know this is not a simple solution from a developer point 
> of view, because
> it's more in the interest of the end-user - but who said 
> programming would
> be easy? 
> 
> -----
> And although it has been a long time coming, I understand an 
> <@WHILE> Meta
> tag will be coming in version 5.5 (or 6.0?).
> 
> 
> Hope this helps. Cheers.... 
> 
> (Note: new phone number April 26th: 403-254-5002)
> 
> Scott Cadillac,
> 403-281-6090 ~ [EMAIL PROTECTED]
> ------------
> XML-Extranet ~ http://xmlx.ca ~ http://forums.xmlx.ca Well-formed
> Programming in C# .NET, Witango, MSIE and XML
> ------------
> IExtranet ~ http://iextranet.ca
> Witango ~ http://witango.org
> EasyXSLT ~ http://easyxslt.ca
> IIS Watcher ~ http://iiswatcher.ca
> ------------
>    
> 
>  
> 
> 
> ________________________________
> 
>       From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
>       Sent: Thursday, April 22, 2004 10:25 AM
>       To: [EMAIL PROTECTED]
>       Subject: RE: Witango-Talk: Sleep & While + explanations
>       
>       
>        
>       I need sleep() (on the server side) to wait for 
> availability on a
> locked resource ( without loading the CPU ).
>       If I use an external procedure (dos wait) I am not sure 
> what is the
> delay needed to load the DOS interpreter; and I would prefer 
> not to bind the
> the solution to an OS. Java can solve all this (provided it is already
> loaded) but I was curious to see if somebody found a simpler way.
>        
>       I was aware of while action and that would work just 
> fine; however
> that means I end up fragmenting a results page action; I'd 
> rather use <@FOR>
> if I can make it act as a while (which can be done in all programming
> languages that I know), but I found no way to do that with witango.
>        
>       I wonder, since there are <@TIMER> and <@FOR> metatags, why not
> <@SLEEP> and <@WHILE> as well? They are obviously closely 
> related and I
> assume they cannot be that difficult to implement...
>        
>                
>       Thank you for all your suggestions.
>       Mike Bravu.
>        
>        
>        
> 
> ________________________________
> 
>       From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
>       Sent: Thursday, April 22, 2004 03:28
>       To: [EMAIL PROTECTED]
>       Subject: Witango-Talk: Sleep & While
>       
>       
>       Hello all,
>        
>       Can anybody help me out with the Witango equivalents for:
>       1- sleep( milliseconds );   and
>       2- while( true ) { }
>        
>       The solutions that I found are not acceptable:
>       1-  except for using externals, if I try to use 
> <@TIMER> it seems I
> burn the CPU, which is not what I want;
>       2-  <@FOR> </@FOR> does not really work or I do not know how to
> setup Start/Step/Stop
>        
>       If the solution is already explained in the documentation I
> apologize, I just could not find it.
>        
>        
>       Thank you,
>       Mike Bravu
>       
> ______________________________________________________________
> __________
>       TO UNSUBSCRIBE: Go to 
> http://www.witango.com/developer/maillist.taf
>       
>       
> ______________________________________________________________
> __________
>       TO UNSUBSCRIBE: Go to 
> http://www.witango.com/developer/maillist.taf
>       
> 
> 
> 
> ______________________________________________________________
> __________
> TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf
> 
> ______________________________________________________________
> __________
> TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf
> 


________________________________________________________________________
TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf

Reply via email to