![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 22.03.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam, chce uruchomić skrypt który będzie pytał zewntęrzne API codziennie o pewnej godzinie i wrzucał rekordy do bazy. Myślałem nad cronem, ale mam jednak pytanie czy istnieje inne rozwiązanie niż cron ?
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 428 Pomógł: 77 Dołączył: 10.07.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Imo zbudowanie tego co chcesz poprzez kolejkę (chociażby RabbitMQ) zajmie Ci 10x więcej czasu aniżeli CRON'em.
Prosta sprawa, piszesz sobie komendę console'ową, ogarniasz w niej całą logikę i wrzucasz w CRON, uruchomi się tak często jak tylko chcesz. W przypadku kolejki musisz się napracować, kolejka trzyma informacje z danymi, pod to piszesz consumer(y) które mają za zadanie "przetrawić" kolejkę. Plus kolejki jest taki, że w przypadku ciężkich kolejek możesz uruchomić X consumerów niezależnie, a co za tym idzie - szybciej ją "rozładować". Przykład z życia wzięty: 1) Dla cron'a dobrym polem do popisu będzie okresowe generowanie np. raportów - potrzebujesz wykonać raport raz dziennie, tak aby konkretnego dnia widzieć statystykę dnia poprzedniego / innego objętego regułą okresu. 2) Dla kolejkowania, dobrym polem może być synchronizacja, weź pod uwagę możliwość replikacji storage'u na dane, zakładając podstawową bazę jako MySql i pomocniczą jako np. Solr czy Elasticsearch, chcesz aby nowe wpisy były indexowane poprzez te 2gie (Solr i ES), przy założeniu, że całość nie ma się odbywać w chwili zapisu do bazy, tak aby nie blokować jakiegoś procesu. Tutaj z pomocą przychodzi Ci kolejka - wrzucasz informacje o zmianie i potrzebie (re)indexacji i w wolnej chwili jakiś ograny consumer się tym zajmie. Mam nadzieję, że rozumiesz różnicę. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 14:04 |