@ron6500

Python: Почему два вызова функции не работаю параллельно?

Пытаюсь вызвать функцию дважды, но с разными параметрами, параллельно использую модуль multiprocessing. Но в терминале вижу, что выполняется только вызов p1(код ниже).
Подскажите, что не так и как лучше сделать? Спасибо!
from django.apps import AppConfig
    
    class CurrencyRatesConfig(AppConfig):
        name = 'currency_rates'
    
        def ready(self):
            import time
            from multiprocessing import Process
    
            import currency_rates.ws_get_rates
    
            p1 = Process(currency_rates.ws_get_rates.get_rates('1m', 'tBTCUSD', 'BTC2USD'))
            p1.start()
            p2 = Process(currency_rates.ws_get_rates.get_rates('1m', 'tIOTUSD', 'IOT2USD'))
            p2.start()
    
            p1.join()
            p2.join()
  • Вопрос задан
  • 293 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Stqs
senior software developer
а currency_rates.ws_get_rates.get_rates что делает?
учитывая префикс "ws" можно предположить что функция связана с веб-сокетами
возможно она делает какую-то блокирующую операцию (ожидает сигнала из вебсокета)

from multiprocessing import Process

def test(arg):
    raw_input(arg)

def test1(arg):
    print(arg)

p1 = Process(test(1))
p1.start()
p2 = Process(test(2))
p2.start()

p1.join()
p2.join()


если использовать функцию test1 - то мы видим 2 принта
если функцию test - то мы видим только инпут из первого вызова.
далее процесс заблокирован
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы