Message-ID: <1048438985.13381.1413959362995.JavaMail.firstname.lastname@example.org> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_13380_107519616.1413959362995" ------=_Part_13380_107519616.1413959362995 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
It's the usual story: Your application never really crashes until it inv= ariably does. Whether you are running a consumer service or a business app,= it's critical to minimize the downtime when the inevitable happens. Grante= d, it's pretty easy to hack up an OS dependent script using cron or similar= to check whether your process is still running but it's a separate configu= ration step and besides, how do you know that your watchdog is working?= =20
Since it's dead simple to auto-load new modules in Tapestry 5, why not e= mbed the whole watchdog with your application? tapestry-watchdog is a T5 service that extracts all the resources it needs from the ja= r it's packaged into, then spawns a new child process to act as a watchdog = for the parent application. The current version only knows to send an email= when the parent process is lost but it'd be easy to extend it to execute a= rbitrary commands (vote for the particular JIRA issue= a>).=20
tapestry-watchdog offers the following benefits over traditional watchdo= gs:=20
With the following caveats:=20
Configuring tapestry-watchdog is super simple. First, add the following = dependency to your pom.xml (the module has no dependencies to any other Tyn= amo module):=20 =20
Then add the following:=20 =20
And that's all! Note that the watchdog is automatically disabled in non-= production mode.