Archives mensuelles : avril 2010

Faire une pause (sleep) en asp/vbscript

L’ASP est un langage assez ancien. Il ne permet pas de faire des pauses (sleep en anglais).

Quand est ce qu’on a besoin de faire des pauses ?

Quand on veut faire une tache répétitive sans utiliser 100% du CPU du serveur, on fait l’action, puis on attend.

Ou alors, sur des tests de charge, quand on veut simuler des mauvais temps de réponse.

Comment faire alors ?

En déléguant la pause à un autre système. L’idée de ce site est de faire la pause à un serveur SQL : http://classicasp.aspfaq.com/general/how-do-i-make-my-asp-page-pause-or-sleep.html

Set conn = CreateObject("ADODB.Connection") conn.Open "Driver={SQL Server};Server=192.168.0.102\SQLSERVER2005;Database=test;Uid=sa;Pwd=****;" ' indicate a number of seconds, up to 59 sleep = 3 ' make sure timeout doesn't expire! conn.commandTimeout = sleep + 5 ' if you neede more than 59 seconds, you will need to adjust the SQL: sql = "WAITFOR DELAY '00:00:" & right(clng(sleep),2) & "'" 'Response.Write(now & "<p>") conn.Execute sql,,129 ' Response.Write(now & "<p>") conn.close:     Set conn = Nothing

Et ça marche très bien, j’ai pu faire mes tests de ralentissement.