我有15个运行此代码的VM。 10个在Rackspace Hyper-V中,5个在Azure中。这些虚拟机彼此相同(版本控制,软件包等)。我的10个Rackspace VM在运行pickle功能时没有问题,但我在Azure中构建的5个随机重启supervisord每15秒。我知道这是我的pickle负载,因为我可以注释掉代码的加载部分,它不再重新启动supervisord。
我已经尝试再次git我的代码,我甚至更换了dat文件的副本。
下面的代码已经概括。
self.__loadPickFiles() #is part of another def
def __loadPickFiles(self):
fn1Directory = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'dir1', 'dir2', 'dir3', "File Name 1.pickle.dat")
fn2Directory = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'dir1', 'dir2', 'dir3', "File Name 2.pickle.dat")
import pickle
self.fn1p_model = pickle.load(open(fn1Directory, "rb"))
self.fn2p_model = pickle.load(open(fn2Directory, "rb"))
预期结果
flaskApp:flaskApp_00 RUNNING pid 2574, uptime 1:37:48
flaskApp:flaskApp_01 RUNNING pid 2575, uptime 1:37:48
flaskApp:flaskApp_02 RUNNING pid 2572, uptime 1:37:48
flaskApp:flaskApp_03 RUNNING pid 2573, uptime 1:37:48
current result (randomly restarts every 15 secs or less)
flaskApp:flaskApp_00 RUNNING pid 8983, uptime 0:00:12
flaskApp:flaskApp_01 STARTING
flaskApp:flaskApp_02 STARTING
flaskApp:flaskApp_03 RUNNING pid 8984, uptime 0:00:12
在试图弄清楚这种困境几周后,答案就在于dat文件中。 dat文件是在xgboost中创建的(写在前几行),我需要'pip install xgboost',这是我的构建指令中缺少的。