Task Manager sur cheyenne
cr882517-Feb-2011/15:29:35+1:00
rebonjour,

je voudrais mettre en place un traitement de récupération d'informations d'une DTAQ AS400, pendant que le serveur Cheyenne tourne.
via la commande :
forever [
output: ""
error: ""
call/error/output rejoin[{rexec -l } USER_AS400{ -p } PASS_AS400 { } SYS_ISERIES { "STRQSH CMD('dataq -r -t 1 -n 10 /qsys.lib/nagios.lib/chk_run.dtaq')"}] error output
if not empty? error [exit]
insert_to_mydb output
wait 10
]


Cheyenne me permettra de gérer les données qui seront récupérées.

je pense savoir que Cheyenne est basé sur UniServe. qui lui même permet de lancer des traitements en "parallèle" via Task-Master.


question:
1 - est ce possible ?
2 - faut il créer un service ou un module ?
3 - pourrais je passer des parametres à cette tache ?

merci d'avance
DocKimbel18-Feb-2011/12:24:31+1:00
Questions:

1) Peux-tu expliquer pourquoi ton traitement de récupération de données doit tourner impérativement "dans" Cheyenne ?

2) Qu'est-ce qui t'empêche de faire tourner ton code dans un script RSP (et profiter d'une exécution dans un process esclave) ?
cr882518-Feb-2011/12:41:07+1:00
le traitement de récupération devra tourner tout le temps en mettant à jour une DB Mysql.
cheyenne me permettra de Gérer les données de la DB et de présenter certains résultats.

1) je n'aurai pas la main sur le serveur ou tournera Cheyenne.je voudrais pouvoir lancer des jobs (avec UniServe) sans que l'admin du serveur ait besoin d'intervenir (à part l'installation du cheyenne).

2) le script tournera tout le temps (forever avec un wait). En le mettant en RSP j'ai peur de ne plus avoir la main pour les pages WEB d'administration des tables SQL.
DocKimbel18-Feb-2011/16:23:46+1:00
La solution la plus simple me semble être la suivante.

Utilise un script RSP de lancement qui va :
- récupérer des paramètres passés dans la requête ou en BDD pour initialiser ton script
- lancer ton script dans un process séparé via un simple CALL (passage des paramètres chiffrés en ligne de commande, dans un fichier ou en réécrivant le script à la volée)
- marquer le fait que le script de récupération ait été lancé (pour éviter qu'il ne soit relancé x fois).

Pour le CALL, il faudrait une commande du type "rebol -qws mon-script.r". Celà implique de fournir un binaire REBOL en plus de Cheyenne à l'admin serveur (le binaire REBOL peut se trouver dans le même dossier pour faciliter les choses). Une autre possibilité est d'encapsuler ton script dans un binaire via le SDK plutot que de fournir le binaire REBOL.

Sinon, il est toujours possible de n'utiliser que Cheyenne. Le moteur RSP utilise déjà le service Task-Master pour déléguer l'exécution des scripts à un process esclave, tu ne gagneras donc rien de plus à faire un module UniServe dédié. Donc il est possible de mettre ton code directement dans un script RSP et de sacrifier un process esclave RSP pour ta récupération de donnée en boucle. Ca n'aura pas d'impact sur Cheyenne qui relancera un autre process pour compenser si nécessaire. Le seul inconvénient, est de bien s'assurer de n'appeler ton script qu'une seule fois au démarrage de Cheyenne...ce qui n'est pas simple si tu n'as pas la main sur le serveur (à part appeler manuellement l'URL du script à chaque redémarrage de Cheyenne, je ne vois pas trop comment faire a priori).
cr882521-Feb-2011/15:34:24+1:00
DocKimbel,

j'ai donc choisi d'externaliser la récupération des données de la DTAQ As400.

j'ai fait un script compatible avec nagios (sans forever) qui lance la recherche des données et check que tout est ok avec la maj dans le db mysql (une pierre 2 coups )

merci à toi

Login required to Post.


Powered by RebelBB and REBOL 2.7.8.4.2