Ich möchte einige verteilte gegenseitige Ausschluss mithilfe einer Datenbanktabelle erstellen. Es wäre schön, die folgende Schnittstelle für eine gespeicherte Prozedur zu haben:Mutex Stored Procedure
Wait (unique)
ich ursprünglich dachte, dies zu implementieren, indem eine Tabelle mit eindeutigen Kennungen aufweisen. Ein Aufruf der Prozedur würde warten, bis der eindeutige Bezeichner in der Tabelle nicht mehr existiert. Ich bin mir jedoch nicht sicher, wie ich den aufrufenden Thread aufwecken würde, wenn der angegebene eindeutige Bezeichner aus der Tabelle entfernt wurde.
Irgendwelche Ideen? Wenn die Datenbank nicht der richtige Ort dafür ist, gibt es irgendwelche Tools von Drittanbietern, die funktionieren würden (vorzugsweise Open Source)?
(Deadlocks zu vermeiden, ich entweder wollen ein Timeout in der Warteoperation aufzunehmen oder die SqlCommand haben haben ein Timeout)