[JAVA/CRON] Aanroepen/plannen van servlet

Pagina: 1
Acties:

  • turkosh
  • Registratie: December 2003
  • Laatst online: 26-04-2025
Hoi allemaal,

Ik heb vernomen dat CRON in linux een geschikte middel is om "activiteiten" te plannen.
Ik heb namelijk een activiteit (/DoMatch) die elke dag 1 keer werd uitgevoerd. Voorheen met Resin kon je in het project Web.xml opgeven wanneer die servlet moest runnen met <run-at>.
Nu met Tomcat werk dat niet meer. Met cron zou ik dus die servlet moeten kunnen aanroepen.
het url waarmee ik de servlet handmatig kan runnen is het vogende:
https://localhost/myproject/DoMatch
Die houdt in de tomcat directory ook een logbestand bij.

Ik heb wat een en ander gelezen over hoe cron werkt en in principe zou het dus makkelijk te configureren zijn. Met crontab -e heb ik het volgende regel toegevoegd:

* * * * * https://localhost/myproject/DoMatch, om te testen of het werkt. Maar deze werkte dus niet (geen uitvoer in het logbestand). Toen vond ik iets over wget en veranderde ik het commando naar:

* * * * * wget https://localhost/myproject/DoMatch. Maar hier zag ik ook geen uitvoer in de log bestand terug.
Hoe kan ik die servlet aanroepen/plannen met cron?

Verwijderd

Met wget moet het normaal wel lukken. Hou er wel rekening mee dat cron geen shell paths ter beschikking heeft, dus je maakt er best /usr/bin/wget http://url van. (je kan het pad van wget vinden met "which wget")

Check ook de mail van de owner van je crontab eens. Als een cron process output (of errors) geeft wordt dat normaal doorgemaild naar de owner.

[ Voor 8% gewijzigd door Verwijderd op 01-02-2006 11:52 ]


  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 03-04 10:15
Ik zou voor een java oplossing kijken, bv Spring heeft mooie voorziening voor het gebruik van scheduling.

http://static.springframe...reference/scheduling.html

[ Voor 29% gewijzigd door Cuball op 01-02-2006 12:42 ]

"Live as if you were to die tomorrow. Learn as if you were to live forever"


Verwijderd

kijk eens naar Quartz (OpenSymphony)?
Ik kan me voorstellen dat die servlet niet echt nodig is, je roept achter die servlet waarschijnlijk toch een business klasse aan die alles afhandelt. Die call kun je in Quartz ook plannen (en CRON achtige functionaliteit is daar aanwezig)

  • turkosh
  • Registratie: December 2003
  • Laatst online: 26-04-2025
Hoi allemaal bedankt, voor de reacties.
Heb inmiddels cron werkend gekregen. Bosmeeuw had gelijk met het gebruik van /usr/bin/wget
Dat heeft gewerkt. Tnx. _/-\o_

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 11-04 03:15
Je kunt wel environmental variables (zoals PATH) opgeven in je crontab. Bovendien kun je mailtjes laten versturen naar een e-mailadres dat je wél checkt (je root account zal wel propvol zitten ondertussen :P).

Zo bijvoorbeeld:
code:
1
2
3
PATH=/bin:/usr/bin:/usr/local/bin
MAILTO=foo@bar.com
* * * * * wget ....

[ Voor 28% gewijzigd door Soultaker op 01-02-2006 16:30 ]


  • Eelke Spaak
  • Registratie: Juni 2001
  • Laatst online: 09-04 19:27

Eelke Spaak

- Vlad -

Misschien mosterd na de maaltijd, maar als je een J2EE container gebruikt, kan je ook de Timer Service gebruiken.

Zie bijvoorbeeld http://www.onjava.com/pub...04/10/13/j2ee-timers.html voor een aardige introductie en http://java.sun.com/j2ee/1.4/docs/tutorial/doc/Session5.html voor de Java Tutorial betreffende dit onderwerp.

TheStreme - Share anything with anyone


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Ik zou kijken naar de volgende oplossingen (als je het binnen java wilt doen):
Timer Heel eenvoudig, maar niet echt krachtig.
ScheduledExecutorService
Persoonlijk is dit mijn favoriet omdat ik veel met concurrency zaken bezig ben en ik hier tot in de puntjes controle op uit kan oefenen.
Quartz Dit is wel de meest uitgebreide van de oplossingen.

Ik maak het scheduling mechanisme tot een configuratie detail. Ik zorg dat er dus nooit concrete scheduling implementaties voorkomen in hetgeen gescheduled moet worden. Ik hoef alleen maar te zeggen: pak dat object, met die methode en schedule het via dat en dat mechanisme op deze en deze manier. Werkt echt geweldig. Dit valt trouwens heel strak te doen via Spring.
Pagina: 1