C# Läsa in värden från databas automatiskt var 5e sekund till en lista.

Permalänk

C# Läsa in värden från databas automatiskt var 5e sekund till en lista.

Tjenna!

Sråk: C# ASP.NET
Serverlösning: Azure med SQL och webbapp.

Jag sitter med ett, inte problem, , men jag är lite osäker på bästa lösningen.
Det jag vill göra är en lista med bokningar av platser på tex. en restaurang så restaurangen kan se bokningarna på en skärm.
Dvs en person bokar via deras webbsida, i programmet som finns på restaurangen poppar denna upp (typ via en modal eller liknande).

Detta behöver INTE ske i realtid, utan den behöver hämta från databasen var 5 - 10e sekund på sin höjd.

---
Det skall alltså funka enligt följande
Kunden gör bokingen via systemet - > Databasen sparar ner informationen -> Datorn i restaurangen får infon och visar den på en display , hämtning från databasen sker var 10e sekund -> Restaurangen skall få någon form av notifikation att det kommit in en ny bokning.
---

Jag har kikat lite på signalr , men det är inte direkt vad jag är ute efter, den gamla versionen av SignalR som finns i äldre asp.net fungerar inte tillsammans med Azures SQL-databaser och den moderna versionen av signalr är inte alls vad jag är ute efter.

Jag vill helst inte använda mig av något annat än just SQL , då hela databasen jag kommer använda mig av redan finns inbyggt i ett system för ett väldigt många antal kronor, så det är inte en lösning.

Jag har tittat på att köra någon form av spegling av databasen till en extern databas, men detta känns onödigt.

Så vad är ert tips på en bra lösning för detta?

Visa signatur

[ -- Gaming -- ]
{ i5-9600k - RTX 3070 OC - 16GB - 3 x 1TB m.2 }
[ -- Workstation --]
{ i7-5960X | GTX 1660 6GB / Quadro | 48GB corsair dominator platinum | 20TB }
{ Lenovo T480S | i7-8650U | 16 GB | 512 GB }

Permalänk
Medlem

@mrCatfood:

Som du beskriver det så låter det som att resturangens applikation INTE är ihopkopplad med webben? Redan här öppnar det upp för dubbelbokningar och mycket manuellt arbete.

Bästa (enklaste) lösningen är att både webben och applikationen kör mot samma databas.

Jag förstår inte varför du tittar på SignalR eller replikering/spegling av databaser.

För att lösa problemet med att resturangens dator ska vara auktoritär så kan man ha en mellanlagring/cache som man jobbar mot alternativt att man har en lokal databas som används om den primära skulle gå ner eller Internetförbindelsen.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem

Jag ser inte hur SignalR inte skulle funka. I samband när systemet/webben sparar ner datan i databasen kan du via SignalR push:a ut datan till klienterna som i sin tur visar datan. Detta körs i realtid och klienten slipper sitta och göra en så kallad "Long polling".

Om du inte vill köra SignalR är det väl inget konstigt heller, skapa en lop av en sorts i en egen tråd som kollar om det har kommit in nya bokningar.
Oftast rekommenderas det inte att göra direkta anslutningar till databasen ute på många klienter, istället bör du bygga en funktion i "systemet" som klienterna kan anropa och hämta bokningar.