У меня один год опыта работы с Python; Тем не менее, я все еще считаю себя новичком, потому что мне не хватает четкого понимания его основ. Теперь мне нужно одновременно запустить несколько экземпляров этого бота, каждый для отдельной пары форекс (например, 'eur_usd', 'usd_jpy'). Я любезно хочу спросить советы, как сделать это правильно и надежно? > Запрашивает обмен и получает последние данные один раз через 5 минут
[*] Проверки на открытие позиции
Если сигнал существует, отправьте запрос на открытие позиции
Смотрит открытое положение, пока оно не будет закрыто < /li>
снова запускает весь процесс < /li>
< /ol>
Вот фрагмент кода из Core -программы
def Run (self): < /p>
if self.state == 'fetch_data':
self.s1.run_pending()
elif self.state == 'check_signal':
self.check_signal()
elif self.state == 'open_position':
self.open_position()
elif self.state == 'watch_trade':
self.watch_trade()
< /code>
Мне нужен этот бот, чтобы запустить в фоновом режиме в течение многих дней. Итак, в моем Main.py я делаю это: < /p>
def run_bot(ticker):
bot = Bot(ticker)
while True:
bot.run()
time.sleep(0.1)
< /code>
Тогда я попытался использовать многопроцесс (и одновременно запускать несколько экземпляров одновременно. < /p>
from concurrent.futures import ProcessPoolExecutor
if __name__ == '__main__':
with ProcessPoolExecutor(max_workers=3) as executor:
executor.map(run_bot, TICKERS)
print(f'Run process ...')
< /code>
Проблема с многопроцестрой заключается в том, что она работает некоторое время, а затем застряла (примерно через 1 час). По сути, это начинает пропускать некоторые запросы запланированных. Иногда он возобновляется позже и может сделать несколько запросов (обычно с задержкой в несколько минут по сравнению с запланированным временем), а затем снова застрял. Полем Здесь предложено исправление. Я попробовал это, но это не сработало для меня. Он бросает ошибку из -за этой строки кода. Однако эта линия была фактически предложена в качестве решения. < /P>
from multiprocessing import set_start_method
set_start_method("spawn")
< /code>
Подводя итог, есть несколько вопросов, которые я пытаюсь найти ответы на: < /p>
Общий. Как лучше всего запускать несколько экземпляров приложения /бота одновременно? Процесс никогда не заканчивается, пока не будет остановлен. < /Li>
Каковы потенциальные альтернативы? что каждый из экземпляров бота, чтобы быть как -то независимым. Если один экземпляр бросает ошибку или сбой другой должен продолжать работать.
Подробнее здесь: https://stackoverflow.com/questions/794 ... ifferent-a
Как запустить несколько параллельных экземпляров питона Infinite Loop Bot с разными аргументами одновременно? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение