Well, I use a servlet that is kicked off at container start(On TC 3.x used <load-on-startup> attribute, TC 5.x+ there is something else which is now part of the J2EE spec). Most other containers have a <load-on-startup> type attribute available to them. When that servlet is init()ed at container start I kick off a class which loads more class names out of the web.xml that are Runnable. This parent class then kicks off a thread for each Runnable, and handles making sure they are all reaped when the destroy() method of the servlet is called(usually at container shutdown). There are better ways of doing this now with the newer TC's. If you don't shutdown your child threads, there may be a possibility that they will remain running after TC stops.

Good luck.

-JW

Lionel Farbos wrote:

I think that what you want, with this feature, is a daemon (but not a servlet that respond to requests).
So, Tomcat don't have to implement anything for this (it's not in its sphere of activities).


I think that crons (eventually with httpclients), TimerTasks, ... are more 
usefull for this need...

On Thu, 3 Mar 2005 08:27:46 -0500
"Parsons Technical Services" <[EMAIL PROTECTED]> wrote:



With all the questions and suggestions flying around, a question to the other programmers: If one was to write a class for the purpose of running classes at set times, what pitfalls would one need to watch for?

I have a class that loads on startup and runs a continuous loop that is timed (sleeps, wakes up, does something, sleeps again). It runs fine, but I know that it could be better.

Any guidance or suggestions would be appreciated. And maybe we could create an add-on and post it for use in apps that need such a device.

Thanks

Doug


----- Original Message ----- From: "Nikola Milutinovic" <[EMAIL PROTECTED]>
To: "Tomcat Users List" <tomcat-user@jakarta.apache.org>
Sent: Thursday, March 03, 2005 6:55 AM
Subject: Re: Equivalent of Resin "run-at" servlet configuration





Subramanya Sastry wrote:



Hello,

I am developing a Java web application, and one of the requirements is to run a particular servlet periodically, or even at specified times. Resin provides this ability via its "run-at" configuration element for servlets in web.xml

Example Resin configuration:
 <servlet>
    <servlet-name>download</servlet-name>
    <servlet-class>DownloadNewsServlet</servlet-class>
    <run-at period='360m'/>
 </servlet>

However, I haven't found an equivalent configuration for Tomcat. I searched
the web and was unsuccessful. So, any pointers as to how I could achieve this
for Tomcat would be appreciated.




There is none and shouldn't be any. I understand the need to run periodical tasks, but J2EE specification, prior to 1.4 has no such provisions. Further, Servlet/JSP specification has no such provision, even in J2EE 1.4. You'd be best advised to setup a cron-job to perform this periodic activity. There are several good HTTP client packages out there, Jakarta-Commons HTTPclient, to name one, that will help you in building the client side of your cron-job.

Nix.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]





--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]




Reply via email to