Django почему этот код блокирует http запросы
Вот модуль:
import threading
import time
import pandas as pd
from binance.client import Client
import json
from api_create_alert.models import Alerts
from service_get_data.get_api_secret import get_secret
alerts = Alerts.objects.all().values()
df = pd.DataFrame(alerts)
data = get_secret()
data = json.loads(data)
client = Client(data['BINANCE_PUBLIC_API'], data['BINANCE_SECRET_API'])
def price_watch():
interval = 10
while True:
coins = client.get_all_tickers()
for coin in coins:
symbol = coin['symbol']
price = float(coin['price'])
rows = df[((df.symbol == symbol) & (df.direction == 'ABOVE') & (price > df.price)) | ((df.symbol == symbol) & (df.direction == 'BELOW') & (price < df.price))]
if len(rows) > 0:
print(rows)
time.sleep(interval)
thread = threading.Thread(target=price_watch)
thread.start()
Импортируя его из apps.py
:
def ready(self):
if os.environ.get("RUN_MAIN") == "true":
import service_price_watch.price_watch
Итак, это цикл, который запускается каждые 10 секунд, каждый раз, когда цикл запускается, приложение Django блокируется, ответ не принимается, пока цикл не завершится, теперь почему это происходит, когда я использую модуль threading
, разве цель модуля threading
не в том, чтобы делать Async операции?