tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Turner <tomcat-u...@johnturner.com>
Subject Re: [Q] Is it safe to create threads in Tomcat web-apps?
Date Mon, 28 Jul 2003 13:03:17 GMT

Nobody, from what I can tell, is saying "can't".  You did ask, though.

If you're willing to be diligent about coding your threads, go for it. 
I think the point of previous posts was that in many cases, there is no 
need for such a thing as your asking.  There are always exceptions to 
the rule, though.

For example:  the question "is it past midnight" would never be asked if 
you were to use the operating system, since with something like cron 
(built in scheduler), the operating already knows if its past midnight. 
  Thus, the question becomes not a question but a command: "its past 
midnight, go find all of the people who have a status of X and remind 
them to change their status to Y."  The effort, then, is spent on the 
business logic, not on trying to figure out if its time to spend time on 
the business logic.

The alternative is to spend resources constantly wondering if a specific 
time is reached.  For one or two events, no problem.  Start getting 
busy, start having 10 or 20 events, and it becomes a problem, not just 
from a resource standpoint, but from an administration and 
synchronization standpoint.

John

Riaan Oberholzer wrote:

> Perhaps I should give a better explanation of how the
> application works:
> 
> I deliver a .war file. I do have access to an
> underlying database. The scheduled tasks perform more
> on a "is time reached" than "has time elapsed"
> principle... eg, it triggers when "is it past
> midnight?" instead of "has 24 hours elapsed?".
> 
> I cannot see why creating a daemon thread cannot cater
> for this. You just start the thread in the init method
> of the InitServlet (or any servlet you create with
> start-when-app-starts).
> 
> What am I missing here? Why can't I use this method?
> If Tomcat crashes and the app gets restarted, my
> thread will be restarted as well, so no problem there.
> The thread should also only be running while the
> web-app is (LONG story why that is so, so I won't give
> details... in short, if the web-app is down, it is
> seen as critical and all else must be halted).
> 
> 
> --- John Turner <tomcat-user@johnturner.com> wrote:
> 
>>cron = scheduler
>>
>>wget = command line HTTP/HTTPS client
>>
>>The requirement for delivering everything in a WAR
>>file is all nice and 
>>dandy, but if you think about it, the requirement
>>automatically breaks 
>>the other requirement: scheduling.
>>
>>If you cannot have a log file, and you cannot access
>>a database, how 
>>will you ever be able to determine elapsed time,
>>which is the primary 
>>requirement for a scheduler?  How can you determine
>>status like when was 
>>the last time it was run, etc?  How can you reset
>>your clock if the app 
>>is shutdown?  How do you know the app has been
>>shutdown due to an 
>>external event?
>>
>>John
>>
>>Riaan Oberholzer wrote:
>>
>>
>>>... nice suggestion, but I am delivering an
>>>application as a .war file to a 3rd party and they
>>>just want the .war (+ context.xml) with everything
>>
>>in
>>
>>>it.... hence, no other applications checking the
>>
>>logs
>>
>>>or database. All functionality must come from the
>>
>>.war
>>
>>>running in Tomcat. It is very important: all
>>>functionality must be encapsulated in the .war
>>
>>file.
>>
>>>(I have no idea what cron +wegt is???)
>>>
>>>I guess a daemon thread will be my choice solution
>>
>>for
>>
>>>now... what the thread does, is check a database
>>
>>daily
>>
>>>for a certain false condition and send an e-mail
>>
>>to
>>
>>>all users in question warning them about the
>>
>>current
>>
>>>status. E.g. if you have to submit your timesheet
>>
>>by
>>
>>>Friday 17:00, then you'll get a warning on Friday
>>
>>at
>>
>>>12:00 if it is not done yet.... something like
>>
>>that.
>>
>>>
>>>
>>>
>>>--- Tim Funk <funkman@joedog.org> wrote:
>>>
>>>
>>>>Tomcat doesn't provide this but other simple
>>>>solutions exist such as exposing 
>>>>a URL and using cron + wget. (Some may also say
>>>>kludge too)
>>>>
>>>>As for aggregating statistics - I would recommend
>>>>using a log file to record 
>>>>the essential measurements then running your stats
>>>>program on the logs. This 
>>>>way - tomcat can crash (or other strange
>>
>>occurences
>>
>>>>may occur) and you lose 
>>>>no data. If the data is already logged, then the
>>>>first solution (cron + wget) 
>>>>will work well too.
>>>>
>>>>-Tim
>>>>
>>>>Riaan Oberholzer wrote:
>>>>
>>>>
>>>>>Well, that was part of my question.... if I
>>>>>cannot/don't implement daemon threads to do e.g.
>>>>>automatic daily tasks, what else? E.g, at the end
>>>>
>>>>of
>>>>
>>>>
>>>>>the day send an e-mail to a (real life) manager
>>>>
>>>>with a
>>>>
>>>>
>>>>>summary of the day's transactions.... something
>>>>
>>>>like
>>>>
>>>>
>>>>>that.
>>>>>
>>>>>Does Tomcat provide some sort of ActionEvent
>>
>>which
>>
>>>>you
>>>>
>>>>
>>>>>can configure to be fired every x milliseconds?
>>>>>
>>>>>
>>>>
>>>>
>>>>
> ---------------------------------------------------------------------
> 
>>>>To unsubscribe, e-mail:
>>>>tomcat-user-unsubscribe@jakarta.apache.org
>>>>For additional commands, e-mail:
>>>>tomcat-user-help@jakarta.apache.org
>>>>
>>>
>>>
>>>
>>>__________________________________
>>>Do you Yahoo!?
>>>Yahoo! SiteBuilder - Free, easy-to-use web site
>>
>>design software
>>
>>>http://sitebuilder.yahoo.com
>>>
>>>
>>
> ---------------------------------------------------------------------
> 
>>>To unsubscribe, e-mail:
>>
>>tomcat-user-unsubscribe@jakarta.apache.org
>>
>>>For additional commands, e-mail:
>>
>>tomcat-user-help@jakarta.apache.org
>>
>>
>>
>>
> ---------------------------------------------------------------------
> 
>>To unsubscribe, e-mail:
>>tomcat-user-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail:
>>tomcat-user-help@jakarta.apache.org
>>
> 
> 
> 
> __________________________________
> Do you Yahoo!?
> Yahoo! SiteBuilder - Free, easy-to-use web site design software
> http://sitebuilder.yahoo.com
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Mime
View raw message