Szukam sensownego rozwiazania dla takiej logiki w WCF:
Użytkownik w Web aplikacji w .net core tworzy requesta o zawarcie transakcj biznesowej (zakup/sprzedarz po okreslonej cenie) , ten request jest wysyłany do WCF, tam zapisywany w mongo i wrzucany na kolejkę.
Do transakcji dochodzi gdy w kolejce znajdują się conajmiej 2 zlecenia o pasujących cenach ale przecidnych typach (kupie/sprzedam).
WCF ma przyjmować zlecenia i dobierać je w pary i tu mam problem jak to zorganizować.
Mam taki pomysł:
- publiczna metoda serwisu przyjmuje zlecenia i wrzuca to na kolejke/liste
-w konstruktorze serwisu tworze singletona który w nieskonczonej petli co iles sekund wywoluje metode szukajacej pasujacych zleceń w kolejce.
Podejrzewam ze to niezbyt eleganckie rozwiazanie. Mogli byście mnie na kierowac jak lepiej to rozwiazać?
Dzieki
Do kawy postudiuj "arkusz zleceń" (per towar/papier) o jakim jest mowa w maklerce.
Może jestem w tej chwili jakoś myślowo ograniczony, ale nie wyobrażam sobie bez statycznych struktur - ty mówisz o czymś czysto dynamicznym.
Cena graniczna, ilość proponowana do transakcji, być może limit czasowy, spotkanie jednej transakcji z czterema z drugiej strony ... to się robi za skomplikowane dla algorytmy "dynamicznego"
PS. Kolejka jak ją powszechnie rozumiemy nie jest strukturą do powtarzalnego przetwarzania tych samych danych (przez nawracającą pętlę). Jeśli czegoś nie wiem, proszę o korektę.
Jest owszem "jakieś" miejsce na kolejkę, wrzutka np sprzedaży na kolejkę (i tu kończy się czysta kolejka) **jednorazowo ** powoduje odpalenie algorytmu, który się wyżywa w **puli ** zleceń przeciwnych (tak, pula, to lepsze słowo niż kolejka!)
PPS. kolejna myśl: dziel i rządź: odetnij się myślowo od WCF, dalsze etapy nie mają nic do tego.