我已经编写了一个单用户应用程序,目前可以与Flask internal web服务器一起工作。它看起来不是很健壮,只要页面加载时间很长,用户在等待时导航到其他地方,就会因各种套接字错误而崩溃。所以我想用Apache代替它。在
启动zmq程序,首先要做的是一个远程数据库连接的问题。最后,它进入run()循环以启动内部服务器。在
我遵循了各种指示,并设法获得了Apache服务的初始页面。但是,一切都出了问题,因为我现在没有可用的工作线程,也没有任何全局初始化的类,并且保存与这些线程通信的接口的全局变量都不存在。在
显然,我不是一个web开发人员。在
我现在的代码有多“错误”?有没有什么方法可以让Apache在合理的工作量下工作呢?我可以让Apache只替换run()部分并有一个正在运行的应用程序,Apache可以与它通信吗?我当前的应用程序非常简化(没有数据处理线程)如下:
comm=None
app = Flask(__name__)
class CommsHandler(object):
__init__(self):
*Init communication links to external servers and databases*
def request_data(self, request):
*Use initialised links to request something*
return result
@app.route("/", methods=["GET"]):
def mainpage():
return render_template("main.html")
@app.route("/foo", methods=["GET"]):
def foo():
a=comm.request_data("xyzzy")
return render_template("foo.html", data=a)
comm = CommsHandler()
app.run()
还是我完全错了?当我离开的时候应用程序运行只需将app类导入wsgi脚本,我就可以从主页上得到响应,因为它不需要引用全局变量comm
/foo不起作用,因为“comm”是未初始化的变量。当然,我知道为什么。我只是从来没有想过这将需要导出到Apache或任何其他web服务器。在
所以问题是,我是否可以在启动时用rc脚本启动这个应用程序,设置它的通信链接和一切,让Apache/wsgi只调用正在运行的应用程序的函数,而不是启动一个新的应用程序?在
汉努
这是一个在内部服务器上运行烧瓶的简单应用程序:
要在apache服务器上运行,请检查fastCGIdoc:
^{pr2}$相关问题 更多 >
编程相关推荐