2016-09-30 2 views
0

Ich habe eine Website (MVC5, C# 5, .Net4.5), die ich ähnlich wie eine Fluglinie Website betreiben möchte beim Auschecken eines Produkts, da das Inventar begrenzt und spezifisch ist.Möglichkeit, Aufgabe in der Zukunft zu planen (z. B. Freigabe in der Website auf Produkt)

Zum Beispiel: Ich wähle einen Flug, dieser Flug wird für 10 Minuten gehalten. Wenn ich die Reservierung vor 10 Minuten beende, ist dieser Flug für mich reserviert und der Laderaum ist offensichtlich entfernt.

Wenn ich stattdessen einfach meinen Browser schließe, was sollte ich tun, um diesen Hold freizugeben, selbst wenn die Sitzung des Benutzers vor dem Timer beendet wurde?

Die Informationen sind in einer MSSQL-Tabelle (productId, holdEnds [datetime]), wann die Haltefunktion freigegeben werden soll.

Gibt es einen anderen Weg als einen SQL-Job, der diese Tabelle jede Minute für alle Holds abfragt, die freigegeben werden müssen? Ich würde gerne einen Code programmieren, der zu einem bestimmten Zeitpunkt von meinem Controller aus ausgeführt wird.

+0

Ist Ihnen bekannt, dass der Prozess, auf dem ASP.NET ausgeführt wird, jederzeit beendet werden kann? Sie müssen einen richtigen Scheduler verwenden, –

+0

Ich bin mir bewusst. Das ist der Grund für meine Frage. – DFTR

+0

Haben Sie einen Vorschlag für einen "richtigen Scheduler" als Antwort würde – DFTR

Antwort

0

Es gibt ein Javascript-Ereignis, das ausgelöst wird, wenn die Seite nicht angezeigt wird, nicht sicher, ob es auf das Ereignis close angewendet wird. Schauen Sie sich das SO Question und Answer oder dieses Answer

Auf der anderen Seite entweder ein Windows-Dienst oder Konsole-Anwendung (läuft über den Task-Scheduler) die Daten haben kann wieder freizugeben, nachdem die Zeit abgelaufen ist.

Für eine Lösung würde ich eine Kombination aus prüfen, ob der Browser war in der Nähe und eine Aufgabe, die Überprüfung der SQL-Tabelle, um zu sehen, ob die Aktie muss zurück.

Verwandte Themen