diff options
| -rw-r--r-- | python/bbg_helpers.py | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/python/bbg_helpers.py b/python/bbg_helpers.py index 26f6a94a..96390fdd 100644 --- a/python/bbg_helpers.py +++ b/python/bbg_helpers.py @@ -3,33 +3,33 @@ import sys import pandas as pd from contextlib import contextmanager import logging -# Fill SessionOptions import datetime logger = logging.getLogger(__name__) -BBG_IP = '192.168.0.4' +BBG_IP = ['192.168.0.4', '192.168.0.10', '192.168.0.12'] @contextmanager -def init_bbg_session(ipaddr, port=8194): +def init_bbg_session(ip_list, port=8194): sessionOptions = blpapi.SessionOptions() - sessionOptions.setServerHost(ipaddr) sessionOptions.setServerPort(port) - session = blpapi.Session(sessionOptions) - try: + for ip in ip_list: # Start a Session + sessionOptions.setServerHost(ip) + session = blpapi.Session(sessionOptions) if not session.start(): - raise NameError("Failed to start session") - - if not session.openService("//blp/refdata"): - raise NameError("Failed to open //blp/refdata") - yield session - except NameError as e: - logger.error(e.message) - raise - finally: - session.stop() + logger.info("Failed to open session with {0}".format(ip)) + continue + try: + if not session.openService("//blp/refdata"): + raise NameError("Failed to open //blp/refdata") + yield session + except NameError as e: + logger.error(e.message) + raise + finally: + session.stop() def append_overrides(request, d): overrides = request.getElement('overrides') @@ -114,7 +114,7 @@ if __name__=="__main__": hist_fields = ['PX_LAST'] securities = ['38145BAA9 Mtge', '75157EAE2 Mtge', 'XS0295516776 Mtge'] fields = ['CUR_CPN', 'START_ACC_DT'] - with init_bbg_session(BBG_IP, 8194) as session: + with init_bbg_session(BBG_IP) as session: hist_data = retrieve_data(session, hist_securities, hist_fields, start_date=testdate) overrides={'SETTLE_DT': testdate} ref_data = retrieve_data(session, securities, fields, overrides=overrides) |
