Ich brauche eine Methode, die manchmal ausgeführt wird, die einige Datenbankverarbeitung ausführt. Allerdings muss es möglicherweise von einem Administrator auf der Website aktiviert werden. Aber ich möchte nicht, dass diese Methode mehr als einmal zur gleichen Zeit ausgeführt wird, da dies zu Problemen beim Zugriff auf die Datenbank führen kann.Wie wird ein Job implementiert, der jede Stunde ausgeführt wird, aber auch von ASPX-Seiten ausgelöst werden kann?
Zum Beispiel könnte ich ...
eine Singleton-Klasse erstellen, die das Verfahren auf einem Timer läuft, und es in der Datei global.asax instanziiert. Da es ein Singleton ist, kann ich es von meinen normalen ASPX-Seiten aus aufrufen und die Methode aufrufen, wann immer ich will. Ich würde wahrscheinlich diese "Lock" -Funktion von C# verwenden müssen, um zu überprüfen, ob die Methode bereits ausgeführt wird.
Ich habe in letzter Zeit gehört, dass Singletons "böse" sind, aber das scheint die perfekte Lösung dafür zu sein. Was denken Sie? Danke im Voraus.
Warum die Datenbank für die Flagge verwenden? Könnte ich nicht einfach die Application-Klasse verwenden? Anwendung ["DBCleanupRunning"] = true; Das wäre für meine einfache Webanwendung viel einfacher. Funktioniert das? –