Chez oim, forum libreChez oim, forum libre

favicon Google Recherche avancée  

Sans gluten

Ce site web est garanti sans gluten !
(Peut contenir des traces d'oeuf, de fruits à coque, de lait, de crustacés, de végétariens)



Pages: [1]   En bas

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

Songbird

  • Invité
Scheduler fait-maison :D
« 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.
IP archivée

alex

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

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




IP archivée
Pages: [1]   En haut
 

+ Réponse Rapide

Page générée en 0.105 secondes avec 22 requêtes.