Courir une fois par jour
Est-il une méthode intelligente pour faire mon executeEveryDayMethod() exécute une fois par jour, sans avoir à impliquer le Windows TaskScheduler?
Ce qui concerne
/Anders
source d'informationauteur Anders R
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à quartz.net. C'est une planification bibliothèque .net.
Plus spécifiquement de prendre un coup d'oeil ici.
J'ai réalisé cela en procédant de la manière suivante...
HTH
*modifier - exemple de code en C# :: Note : pas testé...
Si le temps lorsqu'il est exécuté n'est pas pertinent et peut être remis à zéro chaque fois que le programme démarre, vous pouvez simplement mettre une minuterie, ce qui est la chose la plus facile à faire. Si ce n'est pas acceptable que ça commence à devenir plus complexes, comme la solution présentée ici et qui n'est toujours pas à résoudre le problème de la persistance, vous avez besoin pour résoudre séparément si vous voulez vraiment faire ce que les Tâches Planifiées serait. J'aimerais vraiment examiner à nouveau si cela vaut la peine de passer par toutes les difficultés à reproduire parfaitement les bonnes fonctionnalités existantes.
Voici un une question relative à la (Exemple pris à partir de là).
Vous pourriez moment de la requête et de l'exécuter si votre délai de quelques temps, de cette façon, même si la machine que vous allez appeler la méthode ou l'utilisation d'une minuterie comme Vinko de la suggestion.
Mais la meilleure solution (comme pour les plus âgés CRON versions, de sorte que ses un schéma éprouvé) est d'avoir des données persistantes, avec la solution la moins chère que je pense dès maintenant un fichier vide, vérifier son dernier attribut modifié, et si il n'a pas été modifiés dans les dernières 24 heures vous le touchez et exécuter votre méthode. De cette façon, vous assurer que la méthode est exécuté première chose dans le cas où la demande est pour le week-end par exemple.
Je l'ai fait en C# à l'avant, mais sa a un an à un autre Travail, donc je n'ai pas le code, mais il était d'environ 20 lignes (avec des commentaires et tout et tout).
Il peut y avoir des problèmes si le redémarrage de l'ordinateur de sorte que vous pourriez exécuter l'application en tant que service windows.
Pour exécuter le travail une fois par jour entre 7 et 8 heures du soir, j'ai mis en place un chronomètre avec un intervalle = 3600000 ms, puis exécutez simplement le code suivant pour timer tick.
Une heure de fenêtre est très bien pour moi. Extra granularité sur le temps aura besoin d'un plus petit intervalle sur la minuterie (60000 pendant une minute) et notamment les procès-verbaux sur le si.
par exemple
Si vous ne voulez exécuter une fois par jour et ne se soucient pas quand, ce sera du travail (va courir juste après minuit).
Déclarer un
DateTime
variable:Dans votre démarrage, la date de valeur:
Dans la logique de la zone où vous voulez vérifier si à effectuer l'action: