AppWorx, Dollar Universe and Sysload Community

 View Only
  • 1.  problème d'enchainement uprocs et queue batch

    Posted Jun 18, 2021 07:36 AM
    bonjour,

    je dois lancer une session A avec comme uprocs
    A_debut
    |- A_traitement
    |- A_fin
    |- A_incident

    cette session est a lancer en parallèle sur plusieurs UG UG_01 UG_02 etc....
    j'ai donc crée une tache par UG T_A1 (UG_01) / T_A2 (UG_02) .....

    afin de réguler tout ce petit monde et pour ne pas mettre a genoux les ressources que ces jobs utilisent (bdd par exple) j'ai aussi crée une queue batch physique Q_1 avec une limite de job (3 par exple)

    problème:
    j'ai des batchs qui doivent s'enchainer. Session B (avec uproc B_debut ...etc)
    j'ai donc fait mon conditionnement sur l'uproc de fin de ma session A: A_fin.
    sauf que si ma queue batch est pleine alors que le traitement A_traitement se termine, eh bien mon uproc de fin A_fin peux avoir un gros décalage avant de passer.(des fois il faut 1h pour qu'une queue batch se libère)

    tentatives
    j'ai essayé de créer une tache spécifique qui pointe sur la Q_1 pendant que ma tache principale pointe sur la SYS_BATCH (sans limite)
    cela ne marche pas car l'uproc A_fin prend les attributs de la tache spécifique.

    je pourrai aussi conditionner ma session B sur la bonne fin de l'uproc A_traitement. problème en cas d'évolution de a session A il faut tout reprendre


    j'aimerai donc que mes uprocs s'enchainent au mieux.
    quelqu'un a t il une idée?
    Merci par avance

    ------------------------------
    Sylvain FRANCHET
    intégration/production Carsat RA
    ------------------------------


  • 2.  RE: problème d'enchainement uprocs et queue batch

    Posted Jun 25, 2021 06:01 AM
    Bonjour Sylvain

    Oui c'est un cas d'école assez connu.... Et c'est vrai que Dollar U est quasi le seul a pouvoir gérer ce type de comportement.

    C'est ce que l'on appelle les Gestion dynamique des priorités
    Si la Queue batch est plein malheureusement, vous avez beau avoir une priorité maximum pour les future, elle ne passera pas et attendra la fin d'une des en cours (vos 3 dans votre exemple)

    Je vous invite deja à lire cette partie §8-4-4 Gestion des priorités

    S'ajoute la notion de taches specifiques, qui elles, peuvent jouer non seulement sur cette priorité mais aussi sur une nouvelle Queue si celle ci est limité en volume
    Ainsi votre session peut evoluer de la Q_1 (limitée à 3 car consommatrice) a une autre Q_2 (moins limité)
    Vous pouvez aussi placer vos sessions A en Q_1 et B en Q_2. La gestion de priorité sera alors cloisonnée.

    J'espere vous avoir ouvert l'esprit sur une solution fiable et viable
    Eric


    ------------------------------
    Main director
    SynApps
    #dollaruniverse
    ------------------------------