Python的web项目如何进行动态重载和热部署?

Python016

Python的web项目如何进行动态重载和热部署?,第1张

真正意义上的代码热部署应该是类似erlang那样的,将代码更新到节点后不停服务,不断连接的自动应用新代码。auto reload什么的还是会造成业务瞬间中断。我感觉是可以从wsgi容器级别上实现,比如更新代码后检测到文件变更,然后通知容器创建新的wsgi application的实例,之后所有新的请求都发送到新的wdgi application实例上。等旧wsgi application实例的最后一个请求返回后就将其回收掉。不过貌似没有看到类似的实现

你可以参考一下下面的代码:

import matplotlib.pyplot as plt

import numpy as np

x = np.linspace(0, 10*np.pi, 100)

y = np.sin(x)

plt.ion() #Setting interactive mode on is essential: plt.ion(). This controls if the figure is redrawn every draw() command.

fig = plt.figure()

ax = fig.add_subplot(111)

line1, = ax.plot(x, y, 'b-')

for phase in np.linspace(0, 10*np.pi, 100):

line1.set_ydata(np.sin(0.5 * x + phase))

fig.canvas.draw() #不断的更新