Witam
Potrzebuję wykonać aplikację, która będzie działała w pętli (powiedzmy co 500 milisekund) i pobierała dane z MySQL (SELECT), a następnie je przetwarzała (np. wysyłała je na określoną prze zemnie stronę). W teorii rozwiązanie to jest ok - działa. W praktyce moim zdaniem ma ogromny minus - czas po jakim dodam coś do MySQL a czas przetworzenia tych danych przez nodejs (wysyłka na określoną stronę) może wynieść do 500 milisekund - dla mnie jest to za długo - potrzebuję, aby dane te przetwarzane były natychmiast. Drugi minus - na sekundę robię 2 zapytania do MySQL, nie obciąży to zbytnio serwera? Wolałbym zrobić pętle nawet po 10 milisekund, tylko czy będzie to dobre? Wydaje się to jednak bezsensowne - wysyłanie 100 SELECTów na sekundę, co raczej nie będzie dobre dla serwera :)
Ktoś zapyta - po co MySQL, skoro można od razu przekazywać dane do nodejs i je przetwarzać, lub dodać wpis do mysql przez nodejs i je przetwarzać. Ok - z tym, że dla mnie duże znaczenie ma kolejkowanie. Przykładowo w ciągu 1 sekundy otrzymam 1000 danych. Strona, która je przetwarza jest w stanie przykładowo przetworzyć 1 zapytanie na 30 sekund. Tak więc najlepiej byłoby skorzystanie jednak z sposobu, który napisałem na samym początku (w pętli tej sprawdziłbym sobie również czy końcowa strona może przetworzyć je, jeśli nie to nie robi nic).
I ten mój sposób byłby dobry gdyby przyszło te 1000 danych, jednak jeśli danych mam 0 i przyjdzie chociaż 1 dana to nie chciałbym "czekać" tych 500 milisekund, tylko je od razu przetworzyć.
Ktoś ma jakieś pomysły, aby zrobić to lepiej, bardziej optymalnie? Szukałem jakiś eventów do MySQL (czyli automatycznie po dodaniu wpisu do bazy wykonywała by się jakaś akcja) - jednak one mi nie pomogą - ponieważ tak jak pisałem, potrzebuję zrobić też kolejkowanie, gdy przyjdzie więcej niż 1 dana w ciągu dajmy na to 5 sekund.