Gibt es eine Möglichkeit, ein Ereignis an Sql Server (speziell Azure) zu binden, so dass beispielsweise bei neuen Daten in einer Tabelle mein .NET-Prozess benachrichtigt wird?
Eine andere Option, über die ich gesprochen habe, wäre eine Sql Server long polling
Abfrage. Das heißt, ich führe eine Abfrage aus, aber sie gibt nichts zurück, bis etwas zurückgegeben wird oder ein Timeout erreicht ist.
Um mehr Klarheit über mein Problem zu bekommen, habe ich verschiedene Threads in verschiedenen Instanzen von Windows Azure auf Benachrichtigungen warten. Sie müssen handeln, sobald eine neue Benachrichtigung erfolgt. Ich möchte nicht, dass sie alle 2 Sekunden die Datenbank oder den Speicher abfragen.
Nicht in Azure. In Box-Produkt haben Sie Query-Benachrichtigungen und seine Derivate ( SqlNotificationRequest
, SqlDependency
und SqlCacheDependency
), siehe Die mysteriöse Benachrichtigung für Details. Sie können es als LINQ-Wrapper mit LinqToCache verwenden.
Aber Abfragebenachrichtigungen werden in Azure nicht unterstützt. Auf Azure sollte Ihre Anwendung bei jeder Aktualisierung der Datenbank über Azure-Warteschlangen benachrichtigt werden.
Sie können SqlTableDependency
verwendenSqlTableDependency ist eine generische C # -Komponente, die zum Empfangen von Benachrichtigungen verwendet wird, wenn sich der Inhalt einer angegebenen Datenbanktabelle ändert.
Was ist der Unterschied zu .NET SqlDepencency?
Grundsätzlich besteht der Hauptunterschied darin, dass SqlTableDependency Ereignisse sendet, die Werte für den eingefügten, geänderten oder gelöschten Datensatz enthalten, sowie die in der Tabelle ausgeführte DML-Operation (insert / delete / update): SqlDepenecy sagt nicht, um welche Daten es sich handelt geändert an der Datenbanktabelle, sagen sie nur, dass sich etwas geändert hat.
Tags und Links .net sql-server azure