The test seem to run without errors. It now yields to other processes.

This commit is contained in:
Rob 2024-11-15 19:51:10 -04:00
parent 4072a9d5f5
commit fe1e93c24b
2 changed files with 7 additions and 1 deletions

View File

@ -3,6 +3,7 @@
import logging
import time
import uuid
import eventlet
import backtrader as bt
import datetime as dt
@ -432,7 +433,7 @@ class Backtester:
backtest_key, failure_results)
# Start the backtest as a background task
self.socketio.start_background_task(execute_backtest)
eventlet.spawn(execute_backtest)
def handle_backtest_message(self, user_id: str, msg_data: dict, socket_conn_id: str) -> dict:
"""

View File

@ -3,6 +3,8 @@
import backtrader as bt
import logging
from typing import Dict
import eventlet
import pandas as pd
from backtest_strategy_instance import BacktestStrategyInstance # Ensure correct import path
@ -117,6 +119,8 @@ class MappedStrategy(bt.Strategy):
# Update progress
if self.p.data_length:
self.update_progress()
# Periodically yield to eventlet
eventlet.sleep(0)
def execute_strategy(self):
try:
@ -139,4 +143,5 @@ class MappedStrategy(bt.Strategy):
{'reply': 'progress', 'data': {'progress': progress}},
room=self.p.socket_conn_id
)
logger.debug(f"Emitted progress: {progress}%")
self.last_progress = progress