cronjobs?

Allgemeine Themen rund um NetBeans

Moderator: arittner

cronjobs?

Beitragvon lothorien » 30.07.2009, 14:02

Hallo Leute,
entweder ich bin blind oder ich finde wirklich nichts...
Gibt es in Netbeans die Möglichkeit zeit gesteuert ant tasks (die natürlich vorausgesetzt) unterzubringen?

Wenn es das von haus aus nicht tut, gibt es vielleicht ein entsprechendes Plugin?

vielen dank vorab für die Antwort
lothorien
 
Beiträge: 40
Registriert: 30.07.2009, 13:46

Re: cronjobs?

Beitragvon arittner » 30.07.2009, 21:01

Moin!

Wäre da ein Hudson-Server nicht interessanter?

Beste Grüße,
Josch.
JNBB/BeanDev: Das deutsche Blog zur NetBeans Platform
Bild
Sun Certified Specialist for NetBeans IDE
Benutzeravatar
arittner
 
Beiträge: 2860
Registriert: 05.08.2008, 08:20
Wohnort: Südniedersachsen

Re: cronjobs?

Beitragvon lothorien » 30.07.2009, 22:25

Durch aus, durch aus...
Jede andere Continuous integration Lösung wäre idealer, als das was ich mache.
Es ist leider ein Workaround für fehlende Infrastruktur.
lothorien
 
Beiträge: 40
Registriert: 30.07.2009, 13:46

Re: cronjobs?

Beitragvon arittner » 30.07.2009, 22:50

Moin!

Es gibt da leider nix, aber so ein Plugin wäre relativ einfach zu stricken. Hast Du Dich damit mal auseinander gesetzt?

Beste Grüße,
Josch.
JNBB/BeanDev: Das deutsche Blog zur NetBeans Platform
Bild
Sun Certified Specialist for NetBeans IDE
Benutzeravatar
arittner
 
Beiträge: 2860
Registriert: 05.08.2008, 08:20
Wohnort: Südniedersachsen

Re: cronjobs?

Beitragvon lothorien » 30.07.2009, 23:01

Das wäre dann die nächste Möglichkeit, ich will doch den pdt usern die lange Nase zeigen.
Ich bin zwar überwiegend php entwicklerin, aber mein altes java wissen sollte da schon reichen.
lothorien
 
Beiträge: 40
Registriert: 30.07.2009, 13:46

Re: cronjobs?

Beitragvon arittner » 31.07.2009, 09:15

Moin!
lothorien hat geschrieben:Das wäre dann die nächste Möglichkeit, ich will doch den pdt usern die lange Nase zeigen.

;-)
lothorien hat geschrieben:Ich bin zwar überwiegend php entwicklerin, aber mein altes java wissen sollte da schon reichen.


NetBeans Module zu entwickeln ist zwar recht einfach, aber Projekte anzupassen ist schon etwas kniffliger...

Hier bekommst Du auf jeden Fall Hilfe. Was schwebt Dir eigentlich vor? Willst Du NB ständig laufen haben und somit täglich/wöchentlich zu bestimmten Zeiten Ant-Targets anstoßen, oder soll nur während der Arbeit nach bestimmter Zeit was passieren?

Es gibt (natürlich) auch eine Java CronJob-Implementation: http://www.sauronsoftware.it/projects/cron4j/manual.php - LGPL, das könnte man als sehr gut in ein NetBeans Module implementieren.

Wenn man solche Cron-Jobs in ein Projekt integrieren möchte, macht es Sinn, die Konfiguration in einem Projektknoten einzufügen:
http://blogs.sun.com/geertjan/entry/add ... n_existing
http://platform.netbeans.org/tutorials/ ... nsion.html

Die Project-API:
http://bits.netbeans.org/dev/javadoc/or ... mmary.html

Alternativ könnte man eine Konfiguration in den Projekteigenschaften unterbringen:
http://wiki.netbeans.org/DevFaqActionAd ... Customizer

Um nun tatsächlich Ant-Targets aufzurufen, gibt es diese API:

http://bits.netbeans.org/dev/javadoc/or ... mmary.html

Spannend dabei ist ActionUtils:

http://bits.netbeans.org/dev/javadoc/or ... Utils.html

Diese statische Methode sollte helfen:
Code: Alles auswählen
static ExecutorTask    runTarget(FileObject buildXml, String[] targetNames, Properties properties)


Beste Grüße,
Josch.
JNBB/BeanDev: Das deutsche Blog zur NetBeans Platform
Bild
Sun Certified Specialist for NetBeans IDE
Benutzeravatar
arittner
 
Beiträge: 2860
Registriert: 05.08.2008, 08:20
Wohnort: Südniedersachsen

Re: cronjobs?

Beitragvon lothorien » 31.07.2009, 10:21

Nein ich möchte Netbeans nicht 24 stunden laufen lassen, dann würde ich zum Übergang einen echten cron in die crontab setzen.
Der cron task soll natürlich nur dann laufen wenn Netbeans läuft.

Um es recht einfach zu halten würde ich eine Auswahl für stunden und Minuten zur Verfügung stellen. So hat der Benutzer die Möglichkeit alle x stunden und y minuten den job laufen zu lassen und evtl. zwei checkboxen die besagen das der Job beim start und beim beenden der IDE laufen soll...

So konkrete Gedanken habe ich mir allerdings noch nicht gemacht.

Aber bis ich so weit bin mir Gedanken um die Umsetzung zu machen dauert es noch ein wenig...
Aber vielen vielen Dank für die Linkliste, die wird mir sicherlich weiterhelfen.
lothorien
 
Beiträge: 40
Registriert: 30.07.2009, 13:46

Re: cronjobs?

Beitragvon arittner » 31.07.2009, 11:26

lothorien hat geschrieben:Nein ich möchte Netbeans nicht 24 stunden laufen lassen, dann würde ich zum Übergang einen echten cron in die crontab setzen.
Der cron task soll natürlich nur dann laufen wenn Netbeans läuft.

Ok.
lothorien hat geschrieben:Um es recht einfach zu halten würde ich eine Auswahl für stunden und Minuten zur Verfügung stellen. So hat der Benutzer die Möglichkeit alle x stunden und y minuten den job laufen zu lassen und evtl. zwei checkboxen die besagen das der Job beim start und beim beenden der IDE laufen soll...

Wenn man cron4j nimmt, ist man da sehr flexibel. Man müsste nur Start/Beenden als Sonderfall berücksichtigen. Aber das ist schon fast trivial.

lothorien hat geschrieben:So konkrete Gedanken habe ich mir allerdings noch nicht gemacht.


Nicht schlimm ;-) - Was für Ant-Targets sollen das sein? "Echte" targets in einem Projekt build.xml oder sind das selbst geschriebene Scripte?
Die Unterscheidung wäre nicht unerheblich. Würde man eigene Scripte verwenden, wäre man nicht von der Project-API abhängig (inklusive aller NetBeans-Tasks, Property und XML-Konfigurationen). Man müsste dann "nur" einen Pfad zur eigenen xml-Datei und zu den eigenen Property-Dateien angeben. Bei Projekt-Builds muss man schon tiefgreifende API-Funktionen verwenden, die sich vom Projekttyp unterscheiden. Schon bei Java, Java ME, Java SE, Java EE und JavaFX gibt es Unterschiede.

lothorien hat geschrieben:Aber bis ich so weit bin mir Gedanken um die Umsetzung zu machen dauert es noch ein wenig...
Aber vielen vielen Dank für die Linkliste, die wird mir sicherlich weiterhelfen.


Ich finde die Idee reizvoll. Ich glaube zwar, dass man immer eine andere Lösung finden kann, ohne dass man "CronJobs" in NetBeans benötigt. Aber - um mal schnell - was einzuplanen und als Übergangslösung sowas zu nutzen, ist das bestimmt spannend. Ich habe auch ständig mal Jobs, die erst am Abend erledigt werden dürfen (Deploy, DB-Scripte, usw) und ich will dabei nicht am PC sitzen, sondern zu Hause im Garten werkeln. Da ist so ein IDE integrierter CronJob bestimmt eine gute Lösung für.

Um es kurz zu machen, ich habe ein Projekt begonnen. Man kann schon Jobs einplanen, ausführen lassen und das mit Ant-Scripte, die nicht Projekt orientiert sind. Im Moment ist es nur für Java SE Projekte aktiv. Und man schreibt ein echtes CronJob-Script. Also ungefähr so:

Code: Alles auswählen
# Jede Stunde um *.00 und *.30 ein Build im aktuellen Projekt durchführen
0,30 * * * * ant "<build>"


Da man aber auch generelle CronJobs möchte, werde ich das auch außerhalb von Projekten anbieten.

PHP Projekte in NetBeans sind ja selbst nicht Ant-basiert. Aber es könnte ja sein, dass man auf Eigenschaften des PHP-Projektes zugreifen möchte.

Beste Grüße,
Josch.
JNBB/BeanDev: Das deutsche Blog zur NetBeans Platform
Bild
Sun Certified Specialist for NetBeans IDE
Benutzeravatar
arittner
 
Beiträge: 2860
Registriert: 05.08.2008, 08:20
Wohnort: Südniedersachsen

Re: cronjobs?

Beitragvon Michael » 31.07.2009, 11:35

arittner hat geschrieben:...und ich will dabei nicht am PC sitzen, sondern zu Hause im Garten werkeln...


Also: mir wäre ja ein automatisierter Prozess, der die Gartenarbeit erledigt lieber ... und dann könnte ich ungestört am PC sitzen, ohne dass mich jemand ermahnt, dass ich eigentlich noch Rasen mähen soll ... :D
Die Zukunft war früher auch besser. (Karl Valentin)
Benutzeravatar
Michael
 
Beiträge: 1120
Registriert: 07.01.2008, 14:56
Wohnort: Bad Segeberg

Re: cronjobs?

Beitragvon lothorien » 31.07.2009, 12:27


Was für Ant-Targets sollen das sein? "Echte" targets in einem Projekt build.xml oder sind das selbst geschriebene Scripte?


Mit selbst geschriebenen Scripten wäre man natürlich hoch flexibel. Mir würde es erstmal reichen (meine) ant tasks laufen zu lassen.
ein Beispiel:
Code: Alles auswählen
  <target name="sshexport">
   <sshexec
      host="host
      username="user
      password="pw"
      trust="yes"
      command="cd /to/dir/antTask;
             svn export http://host/repo exportdir --username user --password pw;
             zip -5r exportdir.zip exportdir/ " />
  </target>


Wobei dieser task (und alle anderen),vom Gefühl her, irgendwie dreckig erscheinen. Irgendwie stinkt das snipped, aber ich bin mir nicht sicher wo her ^^. Ich habe mich mit anttasks noch nicht in aller tiefe beschäftigt und genoss vorher den Luxus einer vorhandenen Infrastruktur.

Aber wahrscheinlich ist es auch kein "echter" task, weil ich die meisten Abläufe im command unterschiebe.
# Jede Stunde um *.00 und *.30 ein Build im aktuellen Projekt durchführen
0,30 * * * * ant "<build>"

Ich wollte eigentlich bewusst weg von der cronsyntax, weil intuitiv ist anders.

Ich gebe dir recht, dass man in php normalerweise keinen wirklichen buildprozess hat. (Aber für die Zukunft, und in Anbetracht der phar Untersützung in php 5.3 < x wird es hoffentlich anders/besser).
lothorien
 
Beiträge: 40
Registriert: 30.07.2009, 13:46

Re: cronjobs?

Beitragvon smurfi » 31.07.2009, 12:32

Michael hat geschrieben:
arittner hat geschrieben:...und ich will dabei nicht am PC sitzen, sondern zu Hause im Garten werkeln...


Also: mir wäre ja ein automatisierter Prozess, der die Gartenarbeit erledigt lieber ... und dann könnte ich ungestört am PC sitzen, ohne dass mich jemand ermahnt, dass ich eigentlich noch Rasen mähen soll ... :D


Dito, aber es wird schwer umzusetzen sein :D :lol:
Benutzeravatar
smurfi
Site Admin
 
Beiträge: 1092
Registriert: 29.06.2006, 12:33
Wohnort: Wuppertal

Re: cronjobs?

Beitragvon arittner » 31.07.2009, 12:38

Moin!
lothorien hat geschrieben:Mit selbst geschriebenen Scripten wäre man natürlich hoch flexibel. Mir würde es erstmal reichen (meine) ant tasks laufen zu lassen.
ein Beispiel:
Code: Alles auswählen
  <target name="sshexport">
   <sshexec
      host="host
      username="user
      password="pw"
      trust="yes"
      command="cd /to/dir/antTask;
             svn export http://host/repo exportdir --username user --password pw;
             zip -5r exportdir.zip exportdir/ " />
  </target>


Ja, sowas mache ich auch mit meinen Deploys von Updates:

Teil 1:
BeanDev: AutoUpdate Dateien automatisch kopieren
Teil 2: BeanDev: AutoUpdateCenter per Ant-Script updaten - Teil II

Wobei dieser task (und alle anderen),vom Gefühl her, irgendwie dreckig erscheinen. Irgendwie stinkt das snipped, aber ich bin mir nicht sicher wo her ^^. Ich habe mich mit anttasks noch nicht in aller tiefe beschäftigt und genoss vorher den Luxus einer vorhandenen Infrastruktur.

Schau Dir mal meinen 2. Teil an, da kann man Properties verwenden und Kennwörter per Input-Dialog abfragen. Das ist dann nicht so dreckig ;-)

sshexec ist natürlich schon etwas heftig, aber wenn man wirklich schon svn und andere Befehle ausführen will, bleibt da nicht mehr viel übrig...

# Jede Stunde um *.00 und *.30 ein Build im aktuellen Projekt durchführen
0,30 * * * * ant "<build>"

Ich wollte eigentlich bewusst weg von der cronsyntax, weil intuitiv ist anders.

Ich wollte es erstmal einfach (für mich als Programmierer) halten, nur um zu sehen, ob das einfach zu realisieren ist. Passendes UI kann man immer noch zwischenschalten.

Beste Grüße,
Josch.
JNBB/BeanDev: Das deutsche Blog zur NetBeans Platform
Bild
Sun Certified Specialist for NetBeans IDE
Benutzeravatar
arittner
 
Beiträge: 2860
Registriert: 05.08.2008, 08:20
Wohnort: Südniedersachsen

Re: cronjobs?

Beitragvon arittner » 31.07.2009, 12:41

Moin!

smurfi hat geschrieben:
Michael hat geschrieben:
arittner hat geschrieben:...und ich will dabei nicht am PC sitzen, sondern zu Hause im Garten werkeln...


Also: mir wäre ja ein automatisierter Prozess, der die Gartenarbeit erledigt lieber ... und dann könnte ich ungestört am PC sitzen, ohne dass mich jemand ermahnt, dass ich eigentlich noch Rasen mähen soll ... :D


Dito, aber es wird schwer umzusetzen sein :D :lol:


Wieso???? Traktor fahren, Traktor fahren... Das entspannt und ist gar nicht anstrengend. Außerdem, immer nur PC? Neh.

Beste Grüße,
Josch.
JNBB/BeanDev: Das deutsche Blog zur NetBeans Platform
Bild
Sun Certified Specialist for NetBeans IDE
Benutzeravatar
arittner
 
Beiträge: 2860
Registriert: 05.08.2008, 08:20
Wohnort: Südniedersachsen

Re: cronjobs?

Beitragvon smurfi » 31.07.2009, 13:01

unser Garten ist leider nicht so ebenerdig, da hilft ein Traktor nicht so viel.
Sonst gebe ich dir aber recht, nur PC ist es auch nicht.
Benutzeravatar
smurfi
Site Admin
 
Beiträge: 1092
Registriert: 29.06.2006, 12:33
Wohnort: Wuppertal

Re: cronjobs?

Beitragvon Michael » 31.07.2009, 14:00

smurfi hat geschrieben:
Michael hat geschrieben:
arittner hat geschrieben:...und ich will dabei nicht am PC sitzen, sondern zu Hause im Garten werkeln...


Also: mir wäre ja ein automatisierter Prozess, der die Gartenarbeit erledigt lieber ... und dann könnte ich ungestört am PC sitzen, ohne dass mich jemand ermahnt, dass ich eigentlich noch Rasen mähen soll ... :D


Dito, aber es wird schwer umzusetzen sein :D :lol:


Doch, ich konnte es jetzt relativ einfach umsetzen.
Der automatisierte Prozess heisst: "Nachbarjungen mähen den gesamten Rasen für 5 Euro pro Woche". :lol:
Die Zukunft war früher auch besser. (Karl Valentin)
Benutzeravatar
Michael
 
Beiträge: 1120
Registriert: 07.01.2008, 14:56
Wohnort: Bad Segeberg

Nächste

Zurück zu NetBeans - Allgemeines

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 1 Gast