Skip to content

Commit

Permalink
fix no current asyncio event loop
Browse files Browse the repository at this point in the history
  • Loading branch information
BurdenBear committed Apr 9, 2018
1 parent 2c0eb6f commit ab452a9
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 5 deletions.
8 changes: 4 additions & 4 deletions rqalpha_mod_fxdayu_source/data_source/mongo.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
# encoding: utf-8
import asyncio
from datetime import date, datetime, time

import motor.motor_asyncio
import numpy as np
import pandas as pd
from dateutil.relativedelta import relativedelta
from rqalpha.const import INSTRUMENT_TYPE
from rqalpha.model.instrument import Instrument
from rqalpha.utils.datetime_func import convert_date_to_int, convert_int_to_datetime
from rqalpha.utils.datetime_func import convert_date_to_int
from rqalpha.utils.py2 import lru_cache
import motor.motor_asyncio

from rqalpha_mod_fxdayu_source.data_source.common import CacheMixin
from rqalpha_mod_fxdayu_source.data_source.common.minite import MiniteBarDataSourceMixin
from rqalpha_mod_fxdayu_source.data_source.common.odd import OddFrequencyBaseDataSource
from rqalpha_mod_fxdayu_source.utils import Singleton
from rqalpha_mod_fxdayu_source.utils.asyncio import get_asyncio_event_loop
from rqalpha_mod_fxdayu_source.utils.converter import DataFrameConverter

INSTRUMENT_TYPE_MAP = {
Expand Down Expand Up @@ -83,7 +83,7 @@ def _get_bars_in_days(self, instrument, frequency, params):
collection = instrument.order_book_id
filters = {"_d": {"$gte": datetime.combine(s_date, time=time()), "$lte": datetime.combine(e_date, time=time())}}
projection = {"_id": 0, "_d": 0}
loop = asyncio.get_event_loop()
loop = get_asyncio_event_loop()
bars = loop.run_until_complete(self._do_get_bars(db, collection, filters, projection))
if bars is not None and bars.size:
bars = DataFrameConverter.df2np(bars)
Expand Down
3 changes: 2 additions & 1 deletion rqalpha_mod_fxdayu_source/data_source/quantos.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
from rqalpha_mod_fxdayu_source.data_source.common.minite import safe_searchsorted, MiniteBarDataSourceMixin
from rqalpha_mod_fxdayu_source.data_source.common.odd import OddFrequencyBaseDataSource
from rqalpha_mod_fxdayu_source.utils import Singleton
from rqalpha_mod_fxdayu_source.utils.asyncio import get_asyncio_event_loop
from rqalpha_mod_fxdayu_source.utils.converter import QuantOsConverter
from rqalpha_mod_fxdayu_source.utils.instrument import instrument_to_tushare
from rqalpha_mod_fxdayu_source.utils.quantos import QuantOsDataApiMixin
Expand All @@ -33,7 +34,7 @@ async def _get_bars_in_day(self, instrument=None, frequency=None, trade_date=Non
trade_date=trade_date, start_time=start_time, end_time=end_time)

def _get_bars_in_days(self, instrument, frequency, days):
loop = asyncio.get_event_loop()
loop = get_asyncio_event_loop()
tasks = [self._get_bars_in_day(instrument=instrument, frequency=frequency, **day) for day in days]
results = loop.run_until_complete(asyncio.gather(*tasks))
dfs, msgs = zip(*results)
Expand Down
10 changes: 10 additions & 0 deletions rqalpha_mod_fxdayu_source/utils/asyncio.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import asyncio


def get_asyncio_event_loop():
try:
return asyncio.get_event_loop()
except RuntimeError:
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
return loop

1 comment on commit ab452a9

@BurdenBear
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fix this issue: #2

Please sign in to comment.