![]() |
| |||||||||||||||||||||||||||||||||||||
| Resin 3.1 Documentation Examples Changes Overview Installation Configuration Quercus SOA/IoC JSP Servlets and Filters Admin (JMX) EJB Amber Security Performance Hessian XML and XSLT Third-party Troubleshooting/FAQ JAXB Annotations IoC Annotations JAX-WS Annotations JMS Configuration init bean CronResource RMI Resource FAQ |
CronResource executes application Work tasks at configured intervals. com.caucho.resources.CronResourceOften, applications need to run a task at specific times. The
<web-app xmlns="http://caucho.com/ns/resin">
<resource type="com.caucho.resources.CronResource">
<init>
<cron>*/15</cron>
<work resin:type="example.PeriodicWork">
<foo>Custom Config</foo>
</work>
</init>
</resource>
</web-app>
The cron specification follows the Unix crontab format. The cron is composed of 5 fields: minutes, hours, day of month, month, and day of week. Each field specifies a range of times to be executed. The patterns allowed are:
The minutes field is always required, and the hours, days, and months fields are optional.
Hello, World example
<web-app xmlns="http://caucho.com/ns/resin">
<resource type="com.caucho.resources.CronResource">
<init>
<!-- every minute -->
<cron>*</cron>
<work resin:type="example.PeriodicWork"/>
</init>
</resource>
</web-app>
package example;
import java.util.logging.Level;
import java.util.logging.Logger;
public class PeriodicWork implements Runnable {
static protected final Logger log =
Logger.getLogger(PeriodicWork.class.getName());
public PeriodicWork()
{
log.info("PeriodicWork: constructor");
}
/**
* Required implementation of java.lang.Runnable.run()
*/
public void run()
{
log.info("PeriodicWork: run() Hello, World");
}
}
[13:04:27.429] PeriodicWork: constructor [13:05:00.095] PeriodicWork: run() Hello, World [13:06:00.182] PeriodicWork: run() Hello, World bean-style configuration example
<web-app xmlns="http://caucho.com/ns/resin">
<resource type="com.caucho.resources.CronResource">
<init>
<!-- every minute -->
<cron>*</cron>
<work resin:type="example.PeriodicWork">
<message>Goodybye, World</message>
</work>
</init>
</resource>
</web-app>
package example;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.resource.spi.work.Work;
public class PeriodicWork implements Work {
static protected final Logger log =
Logger.getLogger(PeriodicWork.class.getName());
String _message;
public PeriodicWork()
{
log.info("PeriodicWork: constructor");
}
/**
* Optional, called in response to presence of <message>
* configuration tag.
*/
public void setMessage(String message)
{
log.info("PeriodicWork: setMessage");
_message = message;
}
/**
* Optional, called after bean is created and any setters
* from configuration are called.
*/
@PostConstruct
public void init()
throws Exception
{
log.info("PeriodicWork: init()");
if (_message == null)
throw new Exception("`message' is required");
}
/**
* Required implementation of java.lang.Runnable.run()
*/
public void run()
{
log.info("PeriodicWork: run() " + _message);
}
/**
* Implementation of javax.resource.spi.work.Work.release()
*/
public void release()
{
log.info("PeriodicWork: release()");
}
}
[13:04:27.429] PeriodicWork: constructor [13:04:27.429] PeriodicWork: setMessage [13:04:27.429] PeriodicWork: init() [13:05:00.095] PeriodicWork: run() Goodbye, World [13:06:00.182] PeriodicWork: run() Goodbye, World (close Resin) [13:06:00.345] PeriodicWork: release()
| |||||||||||||||||||||||||||||||||||||