Chez oim, forum libreChez oim, forum libre

favicon Google Recherche avancée  

PRISM

Forum certifié NSA, PRISM2013.

Toi, le troll, le raciste, l'intolérant, passe ton chemin.
Ce forum défend la liberté d'expression, mais rappelle toi que celle ci n'autorise pas tout.



Pages: [1]   En bas

Auteur Sujet: Scheduler fait-maison :D  (Lu 242 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.

alex

  • Administrateur
  • Dictionnaire ambulant
  • ********
  • Hors ligne Hors ligne
  • Sexe: Homme
  • Messages: 15.289
  • 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.121 secondes avec 23 requêtes.