trešdiena, 2011. gada 14. decembris

Procesa apturēšana uz laiku (WAITFOR)

Vēlējos patestēt konkurentu lietotāju pieslēgšanos un darbu ar datu bāzi- tam vajadzēja, lai procedūras neizpildās vienādā ātrumā. Lai to panāktu izmantoju Waitfor un funkciju Rand(). Tālāk arī skripts.

Tātad, lai kods izpildītos nejauši izvēlētu laiku (0 līdz 9), izmantoju šādu skriptu:

declare @t varchar(10) = cast(RAND() * 10 as int)
Set @t = '0:00:0' + @t;
print @t;
-- nākamais iepauzēs @t laika posmu (0-9 sekundes)
WAITFOR DELAY @t;
-- šeit būs pagājis laiks
print 'done';
Emuārā WaitFor izmantots arī rakstā Service Broker: asinhrons trigeris.

Nav komentāru:

Komentāra publicēšana