Witam piszę program w WinFormsach komunikujący się bazą danych MSSQL. Chcę zrobić automatyczne pobieranie danych co minutę, jednak nie mam pojęcia jak podejść do tego problemu. Będę wdzięczny za jakąkolwiek sugestię. Z bazą danych łączę się za pomocą Entity Framework
pobieranie danych z bazy co 1 minutę
- Rejestracja: dni
- Ostatnio: dni
- Postów: 235
Możesz wykorzystać Timer, aby pobierał Ci dane co minutę.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6
dzięki faktycznie powinno działać myślałem że to będzie wstrzymywać pracę programu jeszcze raz dzięki
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: UK
- Postów: 2235
Ciekawostka- kiedyś implementowałem funkcjonalność w której również trzeba było wykonać pewien proces co minutę. Użyłem do tego właśnie timera. Okazuje się że timer nie jest precyzyjny, gdyż naturalną siłą rzeczy musi wykonać pewne dodatkowe obliczenia w tle. Skutkiem tego timer co jakiś czas (jeśli dobrze pamiętam co 60 godzin, jako że interwał wynosił 60 sekund) przeskakiwał jeden cykl minutowy.
W przypadku funkcjonalności nad którą pracowałem (i zapewne jest tak w większości przypadków) można było przeskoczyć ten cykl jako że w kolejnej minucie zaległe zadania z poprzedniej zostały wykonane. Jest to jednak coś co warto mieć na uwadze.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6610
ja tylko zapytam - czy jesteś na 101% pewny, że chcesz coś takiego zrobić?
- Rejestracja: dni
- Ostatnio: dni
Spróbuj z Query Notifications. Różne RDBMS implementują podobne rozwiązania.
https://stackoverflow.com/questions/17207550/how-to-push-the-data-from-database-to-application?rq=1
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6
Możesz też użyć jakiegoś crona np. Hangfire do pobierania danych w określonym interwale czasowym.