J'ai actuellement un projet en cours qui consiste à créer un service Windows qui déplace essentiellement les fichiers sur plusieurs chemins. Un travail peut être, toutes les 60 secondes, obtenir tous les fichiers correspondant à une expression régulière d'un serveur FTP et les transférer vers un chemin réseau, et ainsi de suite. Ces tâches sont stockées dans une base de données SQL.Conseils et astuces pour un service Windows que je crée en C# et en Quartz.NET
Actuellement, le service prend la forme d'une application console, pour faciliter le développement. Les tâches sont ajoutées à l'aide d'une page ASP.NET et peuvent être modifiées à l'aide d'une autre page ASP.NET.
J'ai quelques problèmes cependant, certains concernant Quartz.NET et quelques problèmes généraux.
Quartz.NET:
1: C'est le plus gros problème que j'ai. Voyant que je développe l'application en tant qu'application console pour le moment, je dois créer un nouveau planificateur Quartz.NET sur tous mes fichiers/pages. Cela provoque plusieurs erreurs de confusion, mais je ne sais pas comment installer le planificateur dans un fichier global et y accéder dans mes pages ASP.NET (afin que je puisse obtenir des détails dans une vue de grille pour éditer, par exemple)
2: Mon manager m'a suggéré de chercher plusieurs configurations dans Quartz.NET. Par là, je veux dire qu'à un moment donné, un administrateur peut changer la configuration des applications afin que seules les applications spécifiquement choisies s'exécutent. Quel serait le moyen le plus simple de le faire dans Quartz.NET?
général:
1: Une chose que c'est crucial dans cette application est l'assurance que le dossier a été déplacé et il est en fait sur le chemin cible (après le déplacement du fichier d'origine est supprimé, il serait désastreux si le fichier est effacé quand il n'a pas été copié!). Je dois également m'assurer que le contenu des fichiers correspond au chemin d'accès initial et le chemin cible pour donner la tranquillité d'esprit que ce qui a été copié est correct. Je le fais actuellement en hachant MD5 le fichier initial, en copiant le fichier, et avant de le supprimer assurez-vous que le fichier existe sur le serveur. Ensuite, je hash le fichier sur le serveur et assurez-vous que les hachages correspondent. Y a-t-il une manière plus simple de faire ceci? Je crains que le hachage ne mette le système sous tension.
2: Ceci est lié à la question ci-dessus, mais ce n'est pas aussi important car même mon manager n'a aucune idée de comment je ferais cela, mais j'aimerais bien l'implémenter. Un problème se poserait si un travail est exécuté lors de l'écriture d'un fichier, ce qui peut être qu'un fichier à moitié écrit sera transféré, le rendant ainsi totalement inutile, et ce serait aussi mauvais que le fichier initial serait détruit pendant que c'est écrit à! Y a-t-il un moyen de vérifier cela?