Przenoszenie projektu Python3 w AWS

0

Pytanie

Uczyłem się, jak przenieść mój projekt python3 w AWS, ale nie mogę znaleźć rozwiązania. Mój projekt python3 jest dość prosta:

daemon.py -> To jest nieskończony, choć prawdziwy cykl. On naprawdę dostaje zapytania do API. Ważne jest, aby robić jak najwięcej zapytań na sekundę, jak to możliwe. Następnie zapisuje go w bazie danych mysql. Wniosek jest zawsze jeden i ten sam, GET /api/check_stock.

while True:
  r = requests.post(url,json=body, proxies=proxy_dict)
  r_json = json.loads(r.content)
  insert_db(r_json)

ship.py -> Innego, podczas gdy prawdziwy cykl szuka zmiany w mysql, kiedy wykryje zmianę, wysyła żądanie GET API.

Dowiedziałem się o лямбде, ale nie jestem pewien, że to dobry pomysł na uruchomienie nieskończoną pętlę na nim, tak jak rozumiem, że pobierają opłaty za czas realizacji... i to niekończący się cykl.

Z góry dziękuję.

3

Najlepsza odpowiedź

1

Czy to jest skuteczne dla ciebie, zależy tylko od tego, jak bardzo doceniam każdą z tych pobrań, i mamy za mało informacji, aby poznać odpowiedź.

Istnieje również pytanie o to, czy chcesz uruchomić to przez cały czas lub w określonym czasie w ciągu określonego okresu czasu. W pierwszym przypadku fargate lub ec2 mogą być najlepszymi kandydatami, w drugim-to zależy od tego, jak długo można uruchomić proces.

Istnieje kilka rzeczy, które można poprawić za pomocą obecnego systemu - wydaje się, że czekasz każdej odpowiedzi, co oznacza, że dużo czasu bezczynności. Możesz zwiększyć przepustowość z pomocą komunikacji asynchronicznej i przesyłania strumieniowego podejścia. (jeśli tylko właściwie to nie jedyny punkt końcowy, w którym wymienione są wszystkie elementy)

Inna sprawa, że nie trzeba uciekać ship.py w ramach cyklu monitoringu, jeśli stan zmienia się bardzo często. Jeśli już pracujesz w AWS, można zamiast wysyłać powiadomienia w postaci wiadomości SQS, co doprowadzi do ship.py obrób jak lambda to prawdopodobnie zaoszczędzić jakieś zasoby.

2021-11-23 00:41:40

Dziękuję za odpowiedź. Odpowiedź na WIADOMOŚĆ-to json, i muszę jak najszybciej wykryć zmianę (z tego powodu robię wiele zapytań na publikację na sekundę). To musi być cały czas w trybie 24x7. O ship.py i lambda, dziękuję. Ja już wiem o tym i raczej tak zrobię. Obecnie jestem coraz bardziej staram się zrozumieć, jak mogę migrować daemon.py ponieważ to jest klucz.
Frank
0

Dobrze, okazało się, że najlepsze podejście-uruchomić demona w EC2 z Aurora i spróbować przenieść ship.py jak powiedział вираптор.

2021-11-23 12:31:06
0

jeśli używasz projekt python bez serwera lambda, trzeba zrobić to, co zamierzasz, ale będzie wystawiony dość znaczny koszt.

oto dokumenty: AWS-Lambda-Python

Również użyć SQS do transmisji danych z twojego skryptu do bazy danych.

2021-11-23 13:00:33

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................