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

Algorithmes et structures de données Discussion :

Méthodes de développement d'un job scheduler ?


Sujet :

Algorithmes et structures de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur Systèmes
    Inscrit en
    Août 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Monaco

    Informations professionnelles :
    Activité : Ingénieur Systèmes
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 75
    Par défaut Méthodes de développement d'un job scheduler ?
    Bonjour,

    Je souhaite développer une sorte de job scheduler très light aujourd'hui (une sorte de cron qui gèrerais les dépendances) et j'aimerais savoir d'après vous quelle serait la (ou les) meilleure(s) méthode(s) afin de gérer la détection et le démarrage des jobs par exemple (ceux n'ayant pas de condition d'entrée, mais simplement une date et une heure).

    si je prend un exemple, mon scheduler a plusieurs jobs en base de données, programmés pour démarrer à tous types d'heures, jours, fréquences etc. par exemple des jobs tous les lundis à telle heure, certains plusieurs fois par jour toute la semaine etc.

    mon problème est le suivant : je ne sais pas vraiment comment gérer :

    1. la détection de tous ces jobs par rapport à la journée actuelle
    2. le lancement de ces jobs par rapport à l'heure actuelle

    j'imagine que j'ai deux solutions pour la détection :

    1. faire une sorte de "montée au plan" (pour ceux qui connaissent Control-M par exemple), admettons à minuit, ou le service détecterait dans la base tous les jobs qui doivent tourner "ce jour" (sur les 24 heures à venir) grâce à des requêtes sur certains champs dans la base (normalement pas compliqué)
    2. guetter la base en permanence

    mais après la "détection", comment faire pour planifier le lancement de ces jobs à telle et telle heure ?

    1. faut-il par exemple tout placer dans un tableau (mémoire), tableau préalablement préparé comportant les heures et minutes, et à chaque minute qui passe, regarder si des jobs sont enregistrés dans le tableau à ce moment là ? et les lancer ?
    2. ou alors pour chaque job préparé, calculer le temps qu'il y a jusqu'à lancer ce job, et sleep en attendant ?

    merci pour vos lumières ! si vous avez des tuyaux, idées etc.. je suis toute ouïe

    ps : je n'ai spécifié aucun langage ni base de données, mais ça devrait normalement être fait en Perl et Oracle, avec une IHM en PHP ou CGI pour gérer le tout, à voir.

    cordialement,

    PS : j'ai un peu trouvé réponse à mes questions ici mais si vous avez d'autres idées je suis preneur (http://unix.stackexchange.com/questi...on-daemon-work)

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    J'utiliserai une DataBase avec :
    - une table des Jobs
    - une table des modifications des Jobs, avec 3 champs : un index autoincrément, une action (Ajout, suppression, modification) et une foreignKey vers sur la table des Jobs.

    Au lancement, on charge les 2 tables en mémoire, puis périodiquement on fait une requète sur la table des modifications (enregistrements dont l'index est supérieur au dernier index lu) pour connaitre les actualisations à opérer dans les Jobs (et on supprime les enregistrements de modifications venant d'être traités). Ce mechanisme assure que la table des Jobs en mémoire est toujours à jour.

    Pour le reste, si le nombre de jobs n'est pas colossal, un deuxième timer conviendra pour parcourir les jobs en mémoire et identifier lesquels doivent être lancés immédiatement.

Discussions similaires

  1. Méthodes de développement d'un job scheduler ?
    Par frenchlion dans le forum Méthodes
    Réponses: 2
    Dernier message: 18/06/2013, 22h06
  2. Api pour Job scheduler
    Par suckthewindow dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 08/08/2007, 22h18
  3. Méthode de développement par module, comment ?
    Par blaise_laporte dans le forum Architecture
    Réponses: 5
    Dernier message: 22/02/2007, 19h01
  4. Conseils sur la méthode de développement objet métier
    Par RamDevTeam dans le forum Langage
    Réponses: 5
    Dernier message: 08/12/2005, 18h14

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