有没有办法在生产时重新加载代码而不重新启动Zope? 新功能几乎每两天实施一次,必须上传到服务器。它目前唯一的工作方式是重启zeo服务器和所有实例。不能使用“plone.reload”,因为它只在调试模式打开时才在开发环境中工作。以下是buildout.cfg内容
char
答案 0 :(得分:2)
如果频繁部署,您可以在低流量时间(即晚上)进行部署。
如果网站应该始终处于启动状态,您可以拥有两组Plone实例:一组处于活动状态并提供服务请求,第二组未处于活动状态。
更新时,将更新脱机服务器,完成后,将关闭交换机(例如HAProxy)以替换活动服务器。
您甚至可以随时使用所有服务器,但是为了更新,请在更新时将其置于脱机状态。
和其他人一样,你也指出,我绝不会在生产中使用plone.reload或类似的开发工具。
答案 1 :(得分:1)
是的,有一种方法,虽然我 从未在生产中这样做 它在开发,重新加载时节省了大量时间在浏览器视图中:
from plone.reload.code import reload_code
from Products.Five.browser import BrowserView
class View(BrowserView):
def __call__(self):
reload_code()
return 'Code loaded.'
然后使用您在网站上注册的名称调用视图。当实例在后台运行时,这甚至可以在非调试模式下工作。使用独立实例(非ZEO)进行测试。