automatizzare programmino java

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
Ser8200
Linux 1.x
Linux 1.x
Messaggi: 170
Iscritto il: ven 23 apr 2004, 0:00
Slackware: 12
Località: Venosa

automatizzare programmino java

Messaggio da Ser8200 »

Ciao a tutti,

volevo chiedervi come poter lanciare un determinato programma scritto in java, ad esempio ogni ora?

In pratica io devo lanciare un programma, che prende dati da un db e manda mail di notifica se necessario, in automatico ogni ora.

grazie per il vostro aiuto,

Sergio :D

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: automatizzare programmino java

Messaggio da conraid »

cron

Ogni ora è anche semplice, fai uno script che richiama tale programma e lo metti in /etc/cron.hourly
Se il file avrà i permessi di esecuzione verrà eseguito altrimenti no

Avatar utente
Ser8200
Linux 1.x
Linux 1.x
Messaggi: 170
Iscritto il: ven 23 apr 2004, 0:00
Slackware: 12
Località: Venosa

Re: automatizzare programmino java

Messaggio da Ser8200 »

ok, grazie. Ma io non ho mai usato cron!! puoi indacarmi qualche linea guida o qualche info su cron? grazie di nuovo

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: automatizzare programmino java

Messaggio da conraid »

Ser8200 ha scritto:ok, grazie. Ma io non ho mai usato cron!! puoi indacarmi qualche linea guida o qualche info su cron? grazie di nuovo
man crontab

Ma come ti ho detto non ti interessa molto, ti servirebbe se vuoi fare qualcosa ogni tot minuti, ogni momento specifico insomma.
Per ogni ora, ogni giorno, ogni settimana ed ogni mese ci sono 4 directory
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly

Per eseguire uno script ogni ora basta metterlo dentro cron.hourly

Per esempio io li ho quello per aggiornare il planet di slackers.it
In cron.daily vedrai degli esempi

Naturalmente questi script saranno eseguiti da "root".
Per modificare il comportamento, o fare script per un utente, guarda il file per root in /var/spool/cron/crontabs che è anche il responsabile del comportamento delle directory di cui sopra.

Avatar utente
francogdn
Linux 2.x
Linux 2.x
Messaggi: 320
Iscritto il: ven 19 mag 2006, 10:52
Distribuzione: Fedora
Località: Torino

Re: automatizzare programmino java

Messaggio da francogdn »

http://openskill.info/infobox.php?ID=368


edit: scusa conraid, quando ho postato non mi ha avvertito della tua risposta :-k
Ultima modifica di francogdn il mer 27 ago 2008, 11:30, modificato 1 volta in totale.

Avatar utente
Ser8200
Linux 1.x
Linux 1.x
Messaggi: 170
Iscritto il: ven 23 apr 2004, 0:00
Slackware: 12
Località: Venosa

Re: automatizzare programmino java

Messaggio da Ser8200 »

grazie di nuovo per il vostro aiuto, adesso è tutto chiaro. devo solo fare un script che lancia la mia applicazione e inserirlo oppurtunamente nel file /etc/cron.hourly.

Ciao e grazie :D

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: automatizzare programmino java

Messaggio da conraid »

francogdn ha scritto:http://openskill.info/infobox.php?ID=368


edit: scusa conraid, quando ho postato non mi ha avvertito della tua risposta :-k
Non saprei nemmeno come fare ;-)

A volte phpbb salta la segnalazione di un post inviato mentre scrivi anche a me

Avatar utente
gil-galad
Linux 0.x
Linux 0.x
Messaggi: 57
Iscritto il: mer 7 mag 2008, 21:57
Slackware: 12.1
Contatta:

Re: automatizzare programmino java

Messaggio da gil-galad »

Potresti anche provare a sviluppare in java usando i thread (addormenteresti il thread per un ora), in questo modo il programma sarebbe sempre attivo e autonomo (non dipenderebbe da altri la sua esecuzione) e sarebbe anche un utile esercizio di programmazione :P

Ciao.

Avatar utente
Ser8200
Linux 1.x
Linux 1.x
Messaggi: 170
Iscritto il: ven 23 apr 2004, 0:00
Slackware: 12
Località: Venosa

Re: automatizzare programmino java

Messaggio da Ser8200 »

gil-galad ha scritto:Potresti anche provare a sviluppare in java usando i thread (addormenteresti il thread per un ora), in questo modo il programma sarebbe sempre attivo e autonomo (non dipenderebbe da altri la sua esecuzione) e sarebbe anche un utile esercizio di programmazione :P

Ciao.
si in effetti protrebbe essere un soluzione..ci proverò, grazie per il consiglio :thumbright:

Avatar utente
Blizzard
Master
Master
Messaggi: 1509
Iscritto il: mar 2 gen 2007, 22:53
Nome Cognome: Giovanni Santostefano
Slackware: 12.2
Kernel: 2.6.27.7-smp
Desktop: Fluxbox
Contatta:

Re: automatizzare programmino java

Messaggio da Blizzard »

gil-galad ha scritto:Potresti anche provare a sviluppare in java usando i thread (addormenteresti il thread per un ora), in questo modo il programma sarebbe sempre attivo e autonomo (non dipenderebbe da altri la sua esecuzione) e sarebbe anche un utile esercizio di programmazione :P

Ciao.
sono d'accordo con l'esercizio di programmazione ma se il programma gli è utile e comunque deve girare il metodo dei thread non mi sembra molto UNIX.
C'è già un demone in esecuzione permanente che è crond, non credo sia una idea ottimale aggiungerne un altro e in ogni caso appesantire il programma che deve lanciare ogni ora.
Inoltre avresti la virtual machine java in esecuzione permanentemente (brrr....)

il tutto IMHO
Gio

Avatar utente
gil-galad
Linux 0.x
Linux 0.x
Messaggi: 57
Iscritto il: mer 7 mag 2008, 21:57
Slackware: 12.1
Contatta:

Re: automatizzare programmino java

Messaggio da gil-galad »

Blizzard ha scritto:
gil-galad ha scritto:Potresti anche provare a sviluppare in java usando i thread (addormenteresti il thread per un ora), in questo modo il programma sarebbe sempre attivo e autonomo (non dipenderebbe da altri la sua esecuzione) e sarebbe anche un utile esercizio di programmazione :P

Ciao.
sono d'accordo con l'esercizio di programmazione ma se il programma gli è utile e comunque deve girare il metodo dei thread non mi sembra molto UNIX.
C'è già un demone in esecuzione permanente che è crond, non credo sia una idea ottimale aggiungerne un altro e in ogni caso appesantire il programma che deve lanciare ogni ora.
Inoltre avresti la virtual machine java in esecuzione permanentemente (brrr....)

il tutto IMHO
Gio
In genere un programma come lo ha descritto lui, se pur brevemente, non gira sul desktop di casa. Mi aspetto che stia su un server e su una macchina di queste non vedo il problema di avere una virtual machine sempre attiva, ti dirò che possono esserci anche più di una attiva :P

Poi il discorso del fatto essere unix o meno, non tutti i programmi unix usano il cron per eseguire compiti periodici, molti si demonizzano. L'ideale sarebbe aggiungere al programma java la modalità demone, attivabile con un opzione a riga di comando. In questo modo lascerebbe la scelta a chi lo usa sul da farsi :).

Ciao.

Avatar utente
Blizzard
Master
Master
Messaggi: 1509
Iscritto il: mar 2 gen 2007, 22:53
Nome Cognome: Giovanni Santostefano
Slackware: 12.2
Kernel: 2.6.27.7-smp
Desktop: Fluxbox
Contatta:

Re: automatizzare programmino java

Messaggio da Blizzard »

gil-galad ha scritto: In genere un programma come lo ha descritto lui, se pur brevemente, non gira sul desktop di casa. Mi aspetto che stia su un server e su una macchina di queste non vedo il problema di avere una virtual machine sempre attiva, ti dirò che possono esserci anche più di una attiva :P

Poi il discorso del fatto essere unix o meno, non tutti i programmi unix usano il cron per eseguire compiti periodici, molti si demonizzano. L'ideale sarebbe aggiungere al programma java la modalità demone, attivabile con un opzione a riga di comando. In questo modo lascerebbe la scelta a chi lo usa sul da farsi :).

Ciao.
ciao,
IMHO valuterei molte cose.
Come mi è apparso di capire il sistema si sveglia ogni ora ed esegue qualche query su un db ed eventualmente manda qualche mail.
Innanzi tutto valuterei il tempo di esecuzione e in questo caso non credo sia molto lungo, relativamente al tempo in cui è in sleep.
Poi valuterei il fatto che il programma viene eseguito a cadenza regolare e solo in quei momenti.
Sempre IMHO non demonizzerei mai un sistema tale!
Creerei un demone solo quando:
- Il programma può essere risvegliato in un momento indefinito
- Il programma viene eseguito frequentemente
- Il programma è un programma di sistema che necessita di una reattività molto forte
Sono requisiti che non vedo in quel programma (per quanto descritto).
Inoltre se il sistema "non è sviluppato per scopi didattici" vedo ancor meno il motivo per prolungare il suo sviluppo + aggiungere un codice thread safe ben progettato per una cosa che un demone svolge benissimo e con una certa sicurezza.

Se poi per le intenzioni dello sviluppatore avere il programma sempre in esecuzione è un guadagno in qualcosa allora sia!
Separando sempre lo scopo didattico ovvio! sono il primo che reinventa la ruota se questa mi fa apprendere cose utili.

Gio

P.S.
[fondamentalismo]Un demone, se non costretto, lo farei sempre in un linguaggio compilato possibilmente C[/fondamentalismo]

Avatar utente
gil-galad
Linux 0.x
Linux 0.x
Messaggi: 57
Iscritto il: mer 7 mag 2008, 21:57
Slackware: 12.1
Contatta:

Re: automatizzare programmino java

Messaggio da gil-galad »

Valuta anche, che lo startup di una macchina virtuale java richiede un costo in termini di memoria e tempo di esecuzione, come tu sai non proprio trascurabile. Anche se non essendo un sistema realtime quello che si va a implementare, questo aspetto (del costo di startup dico) non è critico.

Però tra le cose che dici le prime due sono leggermente in contrasto IMHO (Il programma può essere risvegliato in un momento indefinito,
Il programma viene eseguito frequentemente), nel mondo unix esistono molti casi di processi demoni che non sono di sistema e che non necessitano di reattività forte.

In ogni caso, avevo leggermente intuito un po del tuo fondamentalismo :p e aggiungo che potremmo discutere qua per ore/giorni ognuno portando acqua al suo mulino :).

<provocazione>Per me potrebbe farlo anche in Visual Basic o VBA o VBSCRIPT</provocazione> :p

Avatar utente
Blizzard
Master
Master
Messaggi: 1509
Iscritto il: mar 2 gen 2007, 22:53
Nome Cognome: Giovanni Santostefano
Slackware: 12.2
Kernel: 2.6.27.7-smp
Desktop: Fluxbox
Contatta:

Re: automatizzare programmino java

Messaggio da Blizzard »

ciao,
Valuta anche, che lo startup di una macchina virtuale java richiede un costo in termini di memoria e tempo di esecuzione, come tu sai non proprio trascurabile. Anche se non essendo un sistema realtime quello che si va a implementare, questo aspetto (del costo di startup dico) non è critico.
infatti! per quanto il peso sia marginale nel caso dell'esecuzione continua come nel caso del loading ogni volta, preferisco occupare la CPU una volta e bene e non sempre per controllare se è scaduta l'ora (sempre nell'ottica che lo fa gia crond) :P
Però tra le cose che dici le prime due sono leggermente in contrasto IMHO (Il programma può essere risvegliato in un momento indefinito,
Il programma viene eseguito frequentemente)
erano condizioni OR, al massimo XOR :D
nel mondo unix esistono molti casi di processi demoni che non sono di sistema e che non necessitano di reattività forte.
perdonami ma non li conosco, anche se sospetto che molti di questi ricadono nella prima condizione che ho detto, ovvero che il programma debba eseguire un compito nel momento in cui utenti o altri programmi lo risveglino (tipo un demone ssh) altrimenti sono sicuro che c'è un motivo ben preciso.
In ogni caso, avevo leggermente intuito un po del tuo fondamentalismo :p e aggiungo che potremmo discutere qua per ore/giorni ognuno portando acqua al suo mulino :)
e lo stiamo facendo ottimamente :lol: non senti gia aria di moto perpetuo su questo mulino???
<provocazione>Per me potrebbe farlo anche in Visual Basic o VBA o VBSCRIPT</provocazione> :p
Immagine
[edit]img un po violenta :D [/img]

scherzi a parte (programmavo in Visual Basic :badgrin: ) sono fondamentalista ma in discussioni come queste cerco di confinare il fondamentalismo in opportuni tag :D
Per quanto riguarda una scelta di design rimango del parere scritto sopra, ben diverso dal linguaggio in cui si sceglie di implementare.

ciao
Gio

Avatar utente
gil-galad
Linux 0.x
Linux 0.x
Messaggi: 57
Iscritto il: mer 7 mag 2008, 21:57
Slackware: 12.1
Contatta:

Re: automatizzare programmino java

Messaggio da gil-galad »

Un programma che può essere un demone con i permessi da user non privileggiato è fetchmail, può essere usato come demone o sul cron :).

Poi, se demandi al cron l'esecuzione di un processo, devi considerare che l'affidibilità complessiva è minore rispetto all'esecuzione del programma java come demone :p

Comunque, stiamo andando mooolto off topic (mi meraviglia che non ci abbiano ancora menato :lol: :lol: ).

Per il fondamentalismo prima ero più rigido sul mio modo di pensare, poi con la vecchiaia sono migliorato (o peggiorato a seconda dei punti di vista) e lo sono un po meno :p

P.S.
Possiamo continuare in chat in privato, il mio contatto jabber è sul profilo

Ciao :).

Rispondi