et batchs... [Oracle] - Shell/Batch - Programmation
Marsh Posté le 14-01-2008 à 20:13:02
Bonjour et soyez le bienvenu puisque vous êtes nouveau.
Votre question s'apparente à :
"Est-ce que je dois partir en vacances à la mer ou à la montagne ?"
Il y a deux solutions. C'est à vous de choisir celle qui vous convient le mieux. On ne peut pas décider à votre place, parce que c'est une question de goût (de gustibus et coloribus non disputandum), et parce que nous avons moins d'informations que vous.
Si j'avais déjà des batchs, j'y ajouterais cette vérification de présence de fichiers.
Si je n'avais pas de traitements batchs actuellement, et que je n'en prévoie pas dans un avenir proche, alors j'opterais plutôt pour la solution de vérification à la demande plutôt qu'en batch. Les batchs nécessitent la mise en place d'un petit environnement, comprenant un séquenceur (crontab ou autre), des logs avec suivi des logs pour vérifier que le traitement a bien tourné et purge régulière des logs, etc. C'est lourd juste pour un petit (apparemment, je ne sais pas très bien en réalité) programme comme le votre qui va tourner en une ou deux minutes (d'après mon estimation qui peut être fausse). Donc il faudrait déjà voir combien de temps prend le programme. Si c'est moins de trois minutes, je pense qu'un lancement manuel serait préférable parce que la consultation des logs de batchs, des purges, etc. prendra presque autant de temps, sinon plus.
Bon courage !
Marsh Posté le 14-01-2008 à 21:10:48
Tout d'abord, merci pour la reponse...
Ce qui m'inquiete le plus..; c'est au niveau perf! J'ai beaucoup de dossier a verifier!
Ce que je me demande c'est la mise a jour de la base données... Les infos sur les fichiers (nom, taille etc...) seront entrés dans la base il me manquera plus qu'un flag de presence... Comment faire pour que le batch soit le plus leger possible, que la mise a jour se fasse simplement et rapidement....
A chaque dossier un batch, pour pouvoir faire l'update sur une partie de la BDD?
Un batch qui scruterait tous les dossiers et enverrait le flag au fur et a mesure ? (mais alors comment determiné quelles données modifiées) avec des If j'imagine...
C'est un probleme cornelien...
Marsh Posté le 15-01-2008 à 12:53:09
Pourquoi est-ce que cela prendrait beaucoup de temps ?
Les fichiers sont répertoriés dans des tables dont l'accès est assez rapide.
Trouver un fichier, même sur un gros système, ne prend jamais plus de quelques secondes, voire une ou deux minutes.
Ce qui prendrait beaucoup de temps, ce serait s'il fallait trouver quelque chose dans un fichier, mais ce n'est pas le cas.
Marsh Posté le 15-01-2008 à 15:32:12
Est ce que l'on peut à partir des donnees de la base de données (nom de repertoire) les recuperer pour les utiliser dans mon batch qui verifie la presence??? Ce moyen pourrait me faire economiser du temps en ne verifiant que les repertoires interressants....
Marsh Posté le 13-01-2008 à 20:01:07
Bonjour,
Je suis nouveau (ca va se voir tres vite... ) et je souhaite realiser un projet personnel. Mon probleme est le suivant:
En premier : je travaille sous Oracle 10G , serveur IIS et en ASP.NET sous systeme Windows...
Mon but est de verifier dans plusieurs repertoires que des fichiers déclarés en BDD sont presents et les afficher dans une page WEB.
Je me pose la question:
Est-ce que je fais un test à partir de la page web: je compare ce qu'il y a dans la BDD et je regarde dans les repertoires... ?
Soit :
Est que j'ecris un batch qui scrute les repertoires (eux ne changeront pas) et je modifie la Base de données (peut etre par un update ) pour indiquer si le fichier est present ou pas.. Ensuite il me suffira de faire une connection simple par l'Asp.net pour afficher le resultat...
Je me pencherais plus pour la 2eme solution mais j'hesite... je me demande comment je peux faire un batch qui modifiera la bonne valeur et surtout s'il doit tourner en boucle est-ce que ca peut bien marcher ?
Voila j'espere 2 choses : que vous avez compris, que je me suis pas trompé de forum (au vue de l'implication de plusieurs domaines en 1 )
Merci pour vos reponses....