2009-05-07 2 views

Antwort

2

Erstellen Sie eine scheduled task?

+0

Wow, ein -1 für das? Warum? –

1

IMO, ist der beste Weg, einen Webdienst zu schreiben, der Ihre geplanten Aufgaben erledigt. Und um einen Windows-Dienst zu entwickeln, der Ihren Web-Service abhängig von Ihrem Zeitplan aufruft.

0

++ auf Canavar und gattaca Kommentaren, aber ich würde die Hintergrund-Thread Frage vermeiden. Ich habe gehört, dass diese Threads manchmal recycelt werden können und da Ihre App nicht neu startet, gehen sie ins Nichts über. Ich könnte hier falsch liegen. In jedem Fall weniger mem und solide Leistung beim Schreiben eines Windows-Dienstes ... es sei denn, Sie befinden sich auf einem freigegebenen Host, auf dem Sie keinen Dienst installieren können.

1

Was ist der Client, der die ASP.NET-Seite anfordert, und was macht er mit der Antwort? Die wahrscheinlichste Antwort ist, dass es keinen Client gibt, und es gibt keine große Antwort.

Einstellung "warum ist es eine ASP.NET-Seite dann" Art der Antwort. Einige gängige Ansätze sind: -

  1. Verwenden Sie eine geplante Aufgabe, aber das dauert externe Konfiguration.
  2. nicht ASP.NET Verwenden Sie aber einen Dienst erstellen, die Aufgabe zu erfüllen, aber das ist noch mehr externe Konfiguration

Ein Ansatz, der in der Webanwendung enthält sein kann, ist ein Dummy-Objekt in den Cache hinzufügen, dass hat eine bestimmte Ablaufzeit, erlaubt keine willkürliche Löschung durch die eigenen Algorithmen des Caches und verfügt über eine Callback-Methode, wenn das Objekt gelöscht wird.

Ein einfacher, aber fehlerhafter Ansatz wäre, den Ablauf für den Artikel zu dem Zeitpunkt festzulegen, zu dem Sie Ihre Operation ausführen möchten. Ein besserer Ansatz wäre jedoch, ein kürzeres Intervall für das Ablaufdatum zu verwenden, dann bei jedem Ablauf einen Datenbankeintrag zu überprüfen, um zu sehen, ob der Vorgang das Element im Cache ausführen und/oder wiederherstellen muss.

Möglicherweise würden Sie diesen DB-Test transaktional mit einem Flag durchführen, das anzeigt, dass es behandelt wird. Dieser Ansatz würde Web Gardens und Farmen erlauben, nicht übereinander zu stolpern, um alle die gleiche Aufgabe zu erledigen.

Beim Start der Anwendung können Sie auch die Datenbank überprüfen, um festzustellen, ob die Aufgabe ausgeführt werden muss, bevor das Element zum ersten Mal im Cache erstellt wird.

Verwandte Themen