IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

gestion des Job et UIJob


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 40
    Par défaut gestion des Job et UIJob
    Bonjour,
    je vous expose mon problème:
    je développe une application dans laquelle j'ai , entre autres, deux Jobs, ce que je veux c'est pouvoir exprimer la contrainte suivante :
    la deuxième tache ne peut être executer que si la première est fini.
    le blocage n'est pas toléré bien évidement (pas de méthode Join ou wait).

    je vous remercie d'avance.

  2. #2
    Membre expérimenté
    Inscrit en
    Juin 2003
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 292
    Par défaut
    tu peux creer ton propre listener.
    voici un exemple, j'export des fichier a ma base et je notify mon listener pour mettre a jour the UI.

    tu commence par creer ton ListenerManager:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    import java.util.Vector;
     
    public class ListenerManager {
     
    	/**
             * the singleton ListenerManager
             */
    	private static ListenerManager lm = new ListenerManager();
    	/**
             * Vector of ExportEvent 
             */
    	Vector<ExportListener> _listenerList;
     
    	private ListenerManager(){
    		_listenerList = new Vector<ExportListener>(8,2);
    	}
    	/**
         * Retrieve the singleton instance of the ListenerManager
         * 
         * @return the single Listener instance.
         */
    	public synchronized static ListenerManager getInstance(){
    		if(lm==null){
    			new ListenerManager();
    		}
    		return lm;
    	}
    	public void addListener(ExportListener l){
    		_listenerList.add(l);
    	}
    	public void remmoveListener(ExportListener l){
    		_listenerList.remove(l);
    	}
     
    	public void notify(ExportEvent ex){
    		int index = _listenerList.size();
    		_listenerList.get(index-1).fileExported(ex);
    	}
     
    }
    ton event
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class ExportEvent {
    	private String _filename;
    	public ExportEvent(String filename) {
     
    		this._filename = filename;
    	}
    	public String getFilename(){
    		return this._filename;
    	}
     
    }
    ton listener
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public interface ExportListener {
    	public void fileExported(ExportEvent ex);
    }
    puis tu implement l interface Listener ce que tu veux faire avvec ton job 2.

    J'espere que c est ce que tu cherche,

    Cheers.

  3. #3
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 40
    Par défaut
    en effet j'avais pensé à cette solution, mais je pensais tout de même qu'il existait un moyen de faire la même chose directement à partir des Jobs sans implémenter les listeners.

    je te remercie pour ta solution. Si je trouve pas un autre moyen plus directe je ferais comme tu dis.


    cordialement.

  4. #4
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 4
    Par défaut
    La méthode du listener fonctionne bien, mais il existe deux autres moyens plus simples pour synchroniser des Jobs entre eux.

    1. surcharge de la méthode "setSchedulingRule" pour définir les règles d'exécution.

    La documentation en lien ci-dessous détaille l'utilisation de cette méthode avec un blocage de l'exécution centré sur les ressources.
    http://www.eclipse.org/articles/Arti.../jobs-api.html

    2. surcharge de la méthode shouldRUn() ou shouldSchedule() pour contrôler le lancement ou la planification d'un job.

    Cette méthode est surtout utile avec un entier atomique (AtomicInteger) pour limiter le nombre de jobs identiques planifiés ou lancés simultanément.


    Des exemples sont aussi disponibles dans le plugin org.eclipse.ui.examples.jobs :
    http://dev.eclipse.org/viewcvs/viewv....examples.job/

Discussions similaires

  1. Gestion des exceptions entre job Père et fils
    Par jbe77 dans le forum Exécution et industrialisation
    Réponses: 1
    Dernier message: 13/10/2009, 11h08
  2. [Hudson] Gestion des droits d'accès par job
    Par rseM2 dans le forum Intégration Continue
    Réponses: 4
    Dernier message: 20/08/2009, 19h16
  3. [SQL-8][ServerAgent][Jobs]Gestion des jobs
    Par Baquardie dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/01/2007, 17h37
  4. Réponses: 4
    Dernier message: 04/07/2002, 12h31
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo