Fatal Python error: _Py_CheckRecursiveCall: Cannot recover from stack overflow.

maximum recursion depth exceeded while calling a Python object

Fatal Python error: _Py_CheckRecursiveCall: Cannot recover from stack overflow. Python runtime state: initialized

みたいな感じでスタックオーバーフローが出た

def on_close():
     print('error')     connect()

def connect():
ws = websocket.WebSocketApp(URL,on_message=on_message, on_open=on_open ,on_close=on_close)
ws.run_forever()

/* Your code... */

再帰呼び出しの深さで引っかかる

print('再起呼び出しの最大値を表示',sys.getrecursionlimit()) # 再起呼び出しの最大値を表示 -> 
sys.setrecursionlimit(10000) # defaultは1000らしい

このように再帰呼び出しの最大値を多くする手もあるが、どうもよくなさそう

いいか悪いかわからないけど
今の所これで動いている

def on_close(ws,close,ex):
     print('close bitfinex')
     sleep(2)

def connect():
     ws = websocket.WebSocketApp(URL,on_message=on_message, on_open=on_open ,on_close=on_close)
     ws.run_forever()
     return True

flag = True
while flag:
   flag = connect()

 

コメントを残す