1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| /*
* Exécute une action à la minute prévue, toutes
* les 5 minutes en commençant à hh:03.
*
* Le programme exécute la fonction de rappel lorsque l'une
* des valeurs de l'array tab est égale au nombre de minutes
* dans l'heure puis s'interrompt pendant 4 minutes avant de
* reprendre son travail chaque seconde.
*
* Si boolMinute est false, le programme exécute une action
* toutes les 5 secondes et se repose 2,5 secondes.
*/
function execute( callback, boolMinute ){
var bool = boolMinute || true,
appel = callback || function(){},
tab = [ 3, 8, 13, 18, 23, 28, 33, 38, 43, 48, 53, 58 ],
objInterval = setInterval( function(){
tab.forEach( function( value ){
if ( bool && value == new Date().getMinutes() ){
appel( value );
clearInterval( objInterval );
setTimeout( function(){
execute( appel, bool );
}, 240000 ); // repos pendant 60000 * 4 minutes
return;
} else if ( value == new Date().getSeconds() ){
appel( value );
clearInterval( objInterval );
setTimeout( function(){
execute( appel, bool );
}, 2500 ); // repos pendant 2,5s
return;
}
});
}, 1000 );
}
function action( valeur ){
console.log( valeur );
}
execute( action ); // ou execute( action, false ); |
Partager