Visualizzazione dei risultati da 1 a 7 su 7

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    457

    Scattare una funzione ad una determinata ora -java

    Salve a tutti devo implementare una funzione che scatta ad una determinata ora di ogni giorno ad esempio alle 14:01... mi sapete indicare cosa devo utilizzare?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Ciao,
    puoi provare a leggere qui.


  3. #3
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    457

    Impostazione di un batch

    Salve a tutti,
    dovrei impostare una struttura in java che faccia quanto segue: ad ogni ora chiama una funzione B, ogni giorno chiama una funzione B, una volta la settimana chiama una funzione B e una volta al mese chiama una funzione B... secondo voi lo scheletro è corretto? Per favore mi date qualche dritta??
    In sintesi devo realizzare una schedulazione oraria,giornaliera, settimanale, mensile.
    codice:
     public  void avviaReport(String path_base_report) throws Exception {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Calendar corrente = new GregorianCalendar();
            Calendar precedente= new GregorianCalendar(); 
        
            while(true){
                  
              // schedulazione oraria ....
              if(corrente.get(Calendar.HOUR_OF_DAY)!=precedente.get(Calendar.HOUR_OF_DAY)) {
                  // schedulazione oraria
                   funzioneB();
                  
              }
              
              // Schedulazione Giornaliera
             if(corrente.get(Calendar.DAY_OF_MONTH)!=precedente.get(Calendar.DAY_OF_MONTH)) {
                  // schedulazione giornaliera
                 funzioneB();
              }
                  
              // Schedulazione settimanale
              if(corrente.get(Calendar.DAY_OF_WEEK)==1) { // ogni lunedì
    
    
                 funzioneB();
            }
              //Schedulazione mensile
              if(corrente.get(Calendar.DAY_OF_MONTH)==1) { // ogni primo del mese
               
             funzioneB()
                 
             }
              
             precedente=corrente;
             corrente=new GregorianCalendar();
                 
           }  
             
       }
    Chi di voi sa dirmi se l'impostazione è corretta???

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Mitele Visualizza il messaggio
    dovrei impostare una struttura in java che faccia quanto segue: ad ogni ora chiama una funzione B, ogni giorno chiama una funzione B, una volta la settimana chiama una funzione B e una volta al mese chiama una funzione B... secondo voi lo scheletro è corretto? Per favore mi date qualche dritta??
    Concettualmente: per la schedulazione oraria e giornaliera giustamente "senti" il cambiamento. Per settimanale/mensile no, non è corretto, perché non verifichi il cambiamento.

    A parte questo, se vuoi perseverare su questa strada metti almeno uno "sleep" nel while, perché altrimenti il tuo loop sta perennemente in esecuzione, "consuma" solo CPU inutilmente oltre al fatto che ovviamente tiene impegnato il thread che sta eseguendo avviaReport.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    457
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Concettualmente: per la schedulazione oraria e giornaliera giustamente "senti" il cambiamento. Per settimanale/mensile no, non è corretto, perché non verifichi il cambiamento.

    A parte questo, se vuoi perseverare su questa strada metti almeno uno "sleep" nel while, perché altrimenti il tuo loop sta perennemente in esecuzione, "consuma" solo CPU inutilmente oltre al fatto che ovviamente tiene impegnato il thread che sta eseguendo avviaReport.
    Grazie per avermi risposto. Per favore mi dici dove mettere uno sleep e come posso gestire secondo te quando il report è settimanale e mensile?? Come verificare questo cambiamento? Per favore mi potresti aiutare?

    te ne sarei grato

    grazie

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Mitele Visualizza il messaggio
    Per favore mi dici dove mettere uno sleep
    Lo sleep tecnicamente lo puoi mettere dentro il while, all'inizio o alla fine ... non è molto importante. Come tempo di sleep puoi mettere es. 1 secondo ma anche ad esempio 1 minuto (così però il tuo algoritmo potrebbe essere in errore nel riconoscere il cambio di appunto 1 minuto).
    Nota: Thread.sleep accetta millisecondi e può lanciare InterruptedException che va considerata.

    Quote Originariamente inviata da Mitele Visualizza il messaggio
    e come posso gestire secondo te quando il report è settimanale e mensile?? Come verificare questo cambiamento? Per favore mi potresti aiutare?
    Nel concetto dei tuoi test però c'è anche molta "sovrapposizione". Quando il mese cambia, è anche il cambio del giorno e dell'ora! E potrebbe pure essere il cambio della settimana. Quindi es. quando cambia il mese vuoi fare 3/4 volte funzioneB oppure solo una volta?
    Hai considerato questo aspetto?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Come dice Andbin col tuo codice ti mangi troppo cicli macchina e potrebbe arrivare a crasharti il sistema.
    Puoi provare a a cercare qualche libreria che faccia al caso tuo penso che ne esistano in quantità...
    se trovo qualcosa te la posto qui.
    Ciao

    http://www.appuntisoftware.it/quartz...processi-java/
    Ultima modifica di schumy2000; 26-04-2014 a 11:51
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.