C # Code alle 30 Tage ausführen

7

Wenn ich etwas Code ausführen würde, vielleicht eine E-Mail, alle 30 Tage an Benutzer meiner Website, wie würde das geschehen?

    
Soeren 02.06.2010, 12:48
quelle

5 Antworten

1

Mit welchem ​​Framework arbeiten Sie? Ich habe einige Hinweise, wenn Sie mit .Net 4.0 entwickeln, wie ich bin.

Wenn Sie Zugriff auf Ihren Computer haben, auf dem Sie Dienste installieren können, würde ich den neuen und verbesserten Workflow-Service für diese Situation verwenden. Was ist nett an ihnen ist, dass Workflows für Minuten, Stunden, Tage, Wochen, Monate usw. "ruhend" bleiben können, bis Verzögerungen Zeiträume zu beenden.

Wenn es sich um einen IIS-Rechner handelt (und wenn das die Route ist, die Sie verwenden möchten), ist es relativ einfach, sie als "Workflow Service" -Projekt / -Lösung in VS 2010 aufzubauen. Von dort aus werden Sie mit einem Designer und mehrere Workflow-Aktivitäten in der Symbolleiste.

Fügen Sie eine Flussdiagramm-Aktivität hinzu, in der Sie Ihre E-Mail-Aktivitäten platzieren können. Das Flussdiagramm ist ideal, weil es alles initialisieren kann, was Sie benötigen, und der Entscheidungsfluss kann rückwärts in die Richtung umleiten (im Gegensatz zur Aktivität mit immer vorwärts bewegter Sequenz). Was Sie mit Ihrer Logik tun müssen, hängt von Ihnen ab, da Ihre Frage nicht viele Details enthält.

Wenn Sie jetzt .Net 3.5 verwenden, würde ich darüber nachdenken, Workflows nicht zu erstellen, da Sie beim Wechsel zu 4.0 migrieren müssen (WF 3.5 ist NICHT kompatibel mit 4.0). Mit Administratorzugriff auf den Computer können Sie einen Windows-Dienst installieren, der einen Zeitgeber enthält, um den Code alle 30 Tage (oder wie auch immer definiert) nach Bedarf auszulösen.

    
jlafay 02.06.2010, 12:59
quelle
19

Verwenden Sie Windows Task Scheduler , um Ihre Anwendung auszuführen.

>     
Jaxidian 02.06.2010 12:49
quelle
4

Optionen:

1) Konsolenanwendung, die im Windows Taskplaner ausgeführt wird

2) Windows-Dienst Ссылка

    
David 02.06.2010 12:50
quelle
1

Wenn es SQL Server-spezifisch ist, können Sie SQL-Jobs verwenden.

    
SiN 02.06.2010 14:48
quelle
1

Wenn Sie dies mit Ihrer ASP.NET-App anstelle einer separaten App tun möchten, haben Sie einige Optionen:

Da Sie möchten, dass es alle 30 Tage anstatt täglich ausgeführt wird, empfehle ich diese Methode der Verwendung einer Zeitplan-Tabelle anstelle von Anwendungsvariablen oder Cache zum Planen von Jobs:

Sie können eine Planungstabelle in Ihrer Datenbank einrichten und prüfen, wann sie in Ihrer global.asax zuletzt aktualisiert wurde. Überprüfen Sie beim Start der Sitzung, ob das aktuelle Datum mehr als 30 Tage beträgt. Wenn dies der Fall ist, rufen Sie eine Methode zum Versenden von E-Mails auf.

Wenn Sie E-Mails versenden, aktualisieren Sie Ihre Tabelle mit dem aktuellen Datum.

    
Ed B 02.06.2010 15:02
quelle

Tags und Links