我正在使用 Binance Websocket 来监听账户事件MARKET事件。我从主人那里复制每一个订单来拯救它,当我运行它时它工作得很好,它从所有主人那里复制。但是,当我使用nohup Linux 服务在后台运行它时,它会在运行脚本 3 天后停止读取任何事件。我试图捕获STDERR,但脚本中没有任何内容。即使它作为一个正在运行的进程出现在htop中,但没有完成它的工作。我尝试使用asyncio框架,但遇到了同样的问题。从长远来看,我需要同时收听多主播。
import csv
import math
import threading
import time
from datetime import datetime
from binance import ThreadedWebsocketManager, Client
masters = [
[
'api1',
'secret1',
'test1'
],
[
'api2',
'secret2',
'test2'
],
]
def CopyOrder(order, client, name):
# some code to copy order from master
def main(api_key: str, api_secret: str, name: str):
print("Start listening on", name) # Debug
twm = ThreadedWebsocketManager(api_key=api_key, api_secret=api_secret)
cl = Client(api_key=api_key, api_secret=api_secret, testnet=False)
twm.start() # Start the websocket manager
def handle_socket_message(msg):
if msg['e'] == 'executionReport':
# check if it is order or not
CopyOrder(order=msg, client=cl, name=name)
twm.start_user_socket(callback=handle_socket_message)
twm.join()
if __name__ == "__main__":
for master in masters:
# listen to all masters for new orders
thread = threading.Thread(target=main, args=(master[0], master[1], master[2]))
thread.start()