Attention ! Ne cliquez pas sur ce lien, c'est un piège à enfoirés du net !

Chez oim, forum libreChez oim, forum libre

 
Pages: [1]   En bas

Auteur Sujet: Scheduler fait-maison :D  (Lu 5411 fois)

Songbird

  • Invité
Scheduler fait-maison :D
« le: lundi 30 mai 2016, 06:58 »
le: lundi 30 mai 2016, 06:58

Petit post pour laisser une trace d'un outil tout frais compilé que j'ai écrit récemment en Dart (il y a un repo github dessus d'ailleurs), et puis si ça peut servir quelqu'un un de ces quatre... :)

Utilisation:
En tant qu'utilisateur, il n'y a qu'une seule classe qui nous intéresse: la classe Noxine.

Grâce à cette dernière, vous pouvez lui demander de programmer une tâche à une heure bien précise dans la journée:

Par défaut, la classe assume que vous voulez programmer votre tâche à l'heure où vous préparez la tâche. (Donc si vous demander d'exécution une tâche dans 5 heures et que l'instruction est exécutée à midi, la tâche sera exécutée à 17h.)

Code
var date = new DateTime.now();
var noxine = new Noxine(date.second, date.minute, date.hour);
noxine.setOffset(10); //La tâche sera effectuée dans 10 secondes

Maintenant, si vous souhaitez que la classe vérifie régulièrement si la tâche peut être exécutée, il vous suffit d'accrocher votre écouteur à une tâche redondante que l'utilisateur peut faire par exemple:
Code
class MyTester extends ReachedTimeListener
{
	MyTester()
	{

	}

	void whenOffsetHasBeenReached()
	{
		print("It's time ! :D");
	}
}
/* Vous créez une classe qui servira d'écouteur en implémentant l'interface appropriée */

var today = new DateTime.now();
	Noxine noxine = new Noxine(today.second, today.minute, today.hour);
	noxine.setOffset(10);
	noxine.addEventListener(new MyTester()); /* Vous renseignez l'écouteur à l'objet Noxine */
    Element elem = querySelector("#area"); /* Vous récupérez l'élément que vous voulez écouter */
    elem.onClick.listen((_) => 	noxine.computeTimeLeft().then((_){
            if(noxine.timeHasBeenReached)
            {
            	print("Time has been reached ! :D");
            }
            else
            {
            	print("Time hasn't been reached ! :'(");
            }
    		})); /* Puis vous rédigez les instructions que vous voulez exécuter en cas de succès */

Et voilà, la classe s'occupera du reste à votre place ! :)

Off-Topic:
Attention toutefois, la version actuelle de la classe ne gère pas le cas où l'heure, à laquelle la tâche est programmée, est différente ! Pour le moment, vous devrez faire ces tests vous-mêmes pour vous éviter des ennuis.
Signaler au modérateur   IP archivée

alex

  • Administrateur
  • Moulin à paroles
  • ********
  • Hors ligne Hors ligne
  • Sexe: Homme
  • Messages: 23.091
  • Proprio officiel chez oim !
Scheduler fait-maison :D
« Réponse #1 le: lundi 30 mai 2016, 10:57 »
le: lundi 30 mai 2016, 10:57

Aaaaah la cron. Si elle n'existait pas, faudrait l'inventer. :)




Signaler au modérateur   IP archivée
Pages: [1]   En haut
 

Page générée en 0.237 secondes avec 23 requêtes.