Designed by Maunakea !
205 en ligne   Boutique | Sites | Bar | Forum | PhpBB | Actu | Glossaire | Codes | Tips | Liens | Livres | Lettre  


 Recherche

 NewsLetter





   

Planifier des Actions Serveur (1/2)

Ou comment donner de l'autonomie a votre serveur





jice
Créer rapidement et facilement des tâches Server auto-exécutables sans même soliciter IIS ou EasyPHP.
L'activité dynamique d'un intranet ou d'un site nécessite souvent d'envoyer des courriels, mettre ā jour une table dans une base de données, exécuter une procédure particuličre et tout įa ā une heure précise du jour ou de la nuit. Comment faire quand il n'y a personne pour intervenir ? Ou comment gagner du temps dans son travail ? Une solution : Un module en VB Script allié au planificateur Windows.

Page 1  2  SUITE >> 


Cette méthode peut s'appliquer dans différents cas : Par exemple, extraction d'une base de données clients pour connaître les nouvelles commandes, mise à jour d'une BD pour production d'indicateurs opérationnels d'une activité en temps réel, envois d'emails etc...

Bref ce que vous feriez via une page web en appuyant sur un bouton toutes les heures ou toutes les cinq minutes, votre serveur se fera un plaisir de l'exécuter de manière automatique. Ce système a donc l'énorme avantage de minimiser le nombre de tâches d'exploitation qui peuvent être souvent rébarbatives.
D'autant que vous pouvez spécifier le moment quand la tâche doit s'arrêter quand elle doit recommencer !!!

Le deuxième gros avantage et pas des moindres est que vous allez exécuter des actions serveur sans pour autant utiliser IIS ou EasyPHP, paradoxe allez vous dire ? He oui. Les ressources de votre serveur resteront entièrement disponibles pour vos visiteurs.

Si vous deviez faire la même chose via une page web réactualisée par un script, le délai d'exécution serait 2 à 5 fois plus élevé (suivant les conditions réseau et suivant le contenu du script) et vos visiteurs seraient pénalisés au niveau du temps de chargement des pages qu'ils consultent. De plus si cette même page plantait pour x raisons il faudrait un petit F5 pour la faire repartir tandis que là, même s'il y a eu un problème la tâche redémarrera au prochain cycle.

Enfin le planificateur Windows n'est pas limité au niveau du nombre de tâches à exécuter, vous pouvez spécifier autant de choses à faire que vous le souhaitez, quand vous le voulez et à la fréquence que vous désirez même si vous êtes déconnecté de votre station. En effet, point n'est besoin que vous soyez connecté, la tâche se mettra en route automatiquement au moment voulu. Il suffit juste que la station soit mise sous tension.


Le Plan :

1° Création du module VB Srcript sur le "notepad" ou "bloc Note" dont l'extension sera ".vbs "

2° Planification de l'exécution via le planificateur Windows ou le "Scheduler".

Création du module VB Script

Pour l'exemple on va commencer avec une création d'un fichier "extraction.txt" avec des infos issues d'une table composée de trois champs que l'on appellera "ma_table", elle-même issue de la base de données "ma_base.mdb".
Veillez à ce que les trois champs de la table "ma_table" soient bien remplis d'infos, mettez ce que vous voulez dedans ça n'a pas d'importance. L'essentiel est que vous ayez un nombre de lignes conséquent et que votre table soit bien remplie.

L'exemple est avec une base access mais ce peut ętre d'autres types de bases de données et peut s'adapter pour des listing de logs, une extraction d'une table "commandes_clients" pour des commandes nouvellement enregistrées sur votre site etc...

Au préalable, familiarisez vous avec le mode de connexion DSN (Data Source Name) avec ODBC et reprenez le script de connexion avec DSN en ASP, quelque chose dans ce goût là :

<%Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "nom_de_ma_connexion"%>



Comme on ne travaille plus en ASP mais en VB Script inutile de reprendre les balises <% %>, et enlever aussi le préfixe "Server" de "Set conn=Server.CreateObject", inutile aussi puisque nous ne soliciterons pas IIS ou EasyPHP

Prenez une page vierge de l'incontournable "Bloc-Notes" ou "NotePad", puis coller votre script de connexion dedans :

Set Conn = CreateObject("ADODB.Connection")
Conn.Open "nom_de_ma_connexion"


Puis, le plus simplement du monde vous allez entrer votre code habituel que vous taperiez en ASP courant si vous deviez faire la même manip sur une page Web. sauf que lorsque vous faites appelle à des objets, retirer toujours le préfixe "Server".


Avec MS Access vous pouvez aussi utiliser des procédures stockées. A Lire l'article de Ludo sur ce sujet qui est très bien documenté, cela fonctionne aussi très bien.

A lire ou à relire aussi, l'article de Fabrice sur son VB Cdont Mailer.

Pensez aussi, pour cet exemple, ā choisir un répertoire que vous aurez partagé préalablement par un clic droit de votre souris onglet "partage" et non "partage web", sinon votre PC risque de vous refuser l'accès à l'écriture.
Cela dit, avec un chemin physique le partage n'est pas nécessaire. C'est à la carte et c'est vous qui voyez.
Disons que l'interêt de partager le dossier permet de compulser des fichiers texte sur une BD via un réseau local. En reliant une BD Access au fichier texte par le gestionnaire de données externes par exemple on n'a plus besoin de toucher à quoi que ce soit. La liaison sera définitive vous pourrez entre autre travailler en direct (suivant les fréquences d'exécution que vous aurez définies) depuis un autre poste sans passer par l'admin !


Set Conn = CreateObject("ADODB.Connection")
Conn.Open "nom_de_ma_connexion"

sql="select * from ma_table"
set rs=CreateObject("ADODB.Recordset")
rs.open sql,conn,1,2

Set infos = CreateObject("Scripting.FileSystemObject")

'Avec partage
chemin = "\\nom_machine\repertoire\extraction.txt"

'(si vous préférez un fichier excel, changer l'extension en .xls !)

'Sans partage et chemin physique
'chemin = "C:/repertoire/extraction.txt"

set inF = infos.CreateTextFile(chemin)

while not rs.eof

inF.write rs("champ1")&"|"&rs("champ2")&"|"&rs("champ3")

inf.writeline("")

rs.movenext : wend
inF.close

rs.close : set rs=nothing
conn.close : set conn=nothing




Si vous souhaitez en savoir davantage sur les bases de données et apprendre comment agir dessus allez voir par
A découvrir aussi la gestion des fichiers articles indispensables si on veut aller plus avant dans le développement ASP-PHP.


Maintenant, faites un "Enregistrer Sous" dans le menu fichier de NotePad et nommer le "ma_tache.vbs", changer l'information du type de fichier qui par défaut est de type "texte" et choisir "All files" ou "tous les fichiers", puis enregistrer le où vous voulez, sur le bureau si ça vous tente.

Vérifier la bonne exécution en double cliquant sur le fichier avec un joli serpentin bleu...
Votre fichier sera présent à l'endroit ou vous avez spécifier la destination dans le script.
Si jamais votre module contient des erreurs, ce qui peut arriver, le système vous les notifiera par une boîte de dialogue.

Vous êtes prêt maintenant à passer à la seconde étape : planifier l'exécution de la tâche....

Page 1  2  SUITE >> 

Pour pouvoir écrire dans ce forum, identifiez-vous !

  v1.3p © ASP-PHP.net 2002  

jice le 04/07/2003 (36 697 hits)
Didier 11 logiciels Microsoft GRATUITS dont Visual Studio 2008 Pro,
SQL Server 2005, Expression Studio, Windows Server 2003, Office project Pro, etc... !!!
Au fil des news  
Magazines - Le n°108 de Programmez est disponible
Adobe - Téléchargez gratuitement le dossier spécial Adobe
Magazines - Le N°107 de Programmez est disponible.
Créer une Feature d'administration sous SharePoint - Comment créer un composant d'administration
Dans les précédents articles, nous avons évoqué la création de pages personnalisées dans ...
PHP - Afficher une date : multilangage et relative
Agenda - Inscrivez-vous au WygDay [Wygwam] le 22/5 à Lille
Sync Framework - Introduction au MS Sync Framework - Installation
Microsoft, lors du Keynote du TechEd Europe 2007, a annoncé la mise à disposition d'un nouveau ...
Reporting Services et SharePoint - Utiliser SharePoint comme source de données
Dans un précédent article, nous avons pu apprendre comment créer un rapport utilisant une source de ...
JavaScript - Affiche un calendrier sous une zone de saisie
Adobe - Adobe lance la version bêta publique de Photoshop
Microsoft Expression Web - Premier contact
Je suis revenu des Techday's 2008 avec une idée en tête. Je voulais savoir comme travailler avec ...
PHP & MySQLi - de Hello / Sector One
Hello de Sector One propose un article avec PHP et MySQLi, la nouvelle extension de MySQL
VBScript - Zip de fichiers automatique et efface la source
Dreamweaver CS3 + Php + Mysql - Trucs et Astuces - Part 4 -
Pour changer, deux nouvelles astuces pour vous . Alternate Colors. Inscription et envoi de mail
Magazines - Le N°106 de Programmez est disponible.
Divers - Zone Webmasters
PHP5 - Classe de connexion à MySQL
Agenda - 20/03 : Boostez vos applis PHP-Windows Server 2008
Créer un thème graphique pour WSS V3 - Comment créer un thème graphique pour WSS V3
Nous avons vu dans un précédent article comment créer une master page. Il peut parfois être ...
Les plans de maintenance et SQL Server 2000 - Installer un plan de maintenance sous SQL Server
Dans le cadre de la gestion d'instances SQL Server 2000 hébergeant SharePoint, il est intéressant ...
PHP - PHP et MYSQL - MySQLi - PDO
Jeux de l'été (et de 4) - Un petit jeu de Mastermind
C'est reparti pour un tour... Il y avait longtemps que je n'étais pas venu vous proposer un petit ...
Migration WSS avec un Site Template spécifique - Migration WSS avec un Site Template spécifique
Les précédents articles nous ont permis de voir les différents modes de migration de WSS V2 vers ...
DataBase Upgrade de WSS V2 vers WSS V3 - Upgrade de WSS V2 vers WSS V3 par la DataBase
Parmi les trois modes de migration de Windows SharePoint Services V2 vers WSS V3, nous avons vu les ...
Création de module DotNetNuke en C# - Source : Jerome Fortias sap-integration.net
Je vous propose un nouvel article consacré au développement de modules pour DotNetNuke en C#. Il ...
ASP-PHP.net - On sera aux MS TechDays 2008 ! et vous ?
Créer son modèle de rapports SSRS - Créer son modèle de rapports Reporting Services
Après la création du modèle de style pour Reporting Services, il est souhaitable aussi d'avoir un ...
PHP - publipostage sur rtf préformaté avec mysql
Créer son style de rapports SSRS - Créer son style de rapports Reporting Services
Lorsqu'on travaille avec Reporting Services pour développer ses rapports, on veut très souvent ...
.NET - C#2 et ASP.NET 2.0 - Développez un projet de A à Z
SharePoint - MOSS 2007 - De l'intégration au développement
PHP - PHP 5 MySQL 5 AJAX
Découverte de Visual Studio 2008 -
Microsoft a annoncé, lors du TechEd'07 organisé à Barcelone, la mise à disposition de la release de ...
Adobe - Photoshop Elements 6 Version MAC
Adobe - Adobe sur Intergraphic 2008
Reporting Services et données XML - Utiliser des données XML dans Reporting Services
Une demande récente que j'ai reçue : Comment utiliser des données provenant d'un flux XML dans ...
Dreamweaver CS3 + XML + Ajax - Création d'une région détail
Dans cet article, je vais vous montrer comment utiliser la technique région détail, avec Spry
PHP - Jolie arborescence dynamique
Magazines - Le N°104 de Programmez est disponible
PHP - PhPBB 3.0.0 !!!
Tutorial : HTML | Scripting | ASP-PHP | ASP.net | SQL Server | XML
Sharepoint | XAML | Pocket | Dreamweaver | VML | Divers
  Scripts : Scripting | ASP-PHP | ASP.net | Divers
  Boutique | Annuaire | Bannières | Météo | Tribune | Partenariats
v3 © Didier 2003   
 

Corpo Sciences de Reims Partitions gratuites Carte, météo, annonces
 MVP ASP-magazine El Roubio Codes Sources The Inquirer FR Groupes Utilisateurs Microsoft Wygwam TechNet CodePPC DotNet Project