fxcmpy连接断开,无法重新连接

2024-04-23 08:50:05 发布

您现在位置:Python中文网/ 问答频道 /正文

使用fxcmpapi(fxcmpy),即时通讯努力使连接随时间保持活动状态 一段时间后,连接断开,当代码尝试重新连接时,我收到下面的错误消息

我尝试了几种方法来恢复连接,但似乎没有任何效果

有人知道这里有什么问题吗

|ERROR|2020-10-21 16:05:53,815|Socket returns unknown error.
|ERROR|2020-10-21 16:05:53,815|error in reinitialization

Traceback (most recent call last):
  File "/home/ec2-user/SageMaker/project_forex/disconnect_test.py", line 60, in start_up
    con = setup_con()
  File "/home/ec2-user/SageMaker/project_forex/disconnect_test.py", line 50, in setup_con
    server='real')
  File "/home/ec2-user/anaconda3/envs/forex_cpu/lib/python3.7/site-packages/fxcmpy/fxcmpy.py", line 218, in __init__
    raise ServerError('Can not connect to FXCM Server.')
fxcmpy.fxcmpy.ServerError: Can not connect to FXCM Server.

import time
import pickle
import numpy as np 
import datetime as dt
import pandas as pd
import sys
import fxcmpy

示例代码:

class Data():
    def __init__(self):
        self.time = None
        self.last_data = None
    
    
    def update(self, data, dataframe):
        self.time = pd.to_datetime(int(data['Updated']), unit='ms')
        self.last_data = data['Rates']
        

def run(data, con):

    while con.is_connected():
        try:
            time.sleep(1)

            print(data.time, data.last_data)
        
        except KeyboardInterrupt:
            con.close()
            raise SystemExit

    con.logger.info('lost connection') 
    con.close()
    start_up()

def setup_con():

    con = fxcmpy.fxcmpy(log_file=f"logs/test.log",
                        log_level='debug',
                        access_token='',
                        server='real')

    return con

def start_up():
       
    flag = False

    while not flag:
        try:
            con = setup_con()
            data = Data()
            con.subscribe_market_data('EUR/USD', (data.update,))
            con.logger.info("Setup complete")
            flag = True
            run(data, con)
 
        except Exception:
            print('error in reinitialization')
            con.logger.exception('error in reinitialization')
      

if __name__ == '__main__':
    start_up()

Tags: inimportselfdatatimedefsetuperror