Web应用程序多次启动 - web.py

时间:2016-05-10 09:00:35

标签: python python-2.7 web.py

我有这个代码,它在服务器启动时加载必要的文件并打印必要的信息,但在if __name__ == "__main__":内部我开始后台进程,然后最终执行app.run()。

我的问题是在加载所有并进入后台进程的开始后,它开始打印并从头再次加载所有内容。当服务器获得第一个请求(GET / POST)时,它也会这样做。如何才能加载一次?

import web
from multiprocessing import Process
import scripts
print 'Engine Started'
# Code to load and print necessary stuff goes here...

urls = (
    '/test(.*)', 'Test'
)

class Test():

    def GET(self,r):
        tt = web.input().t
        print tt
        return tt


if __name__ == "__main__":
    try:
        print 'Cache initializing...'
        p = Process(target=scripts.initiate_cleaner)
        p.start() # Starts the background process
    except Exception, err:
        print "Error initializing cache"
        print err

    app = web.application(urls, globals())
    app.run()

所以这个加载三次('Engine Started'打印三次)在启动进程并从localhost请求:8080 / test?t = er

我经历了this,但它解决了烧瓶中的问题,我使用了web.py

1 个答案:

答案 0 :(得分:1)

我不确定为什么这会让你感到惊讶,或者为什么会出现问题。根据定义,后台流程是与Web流程分开的流程;每个都将导入代码,因此打印该消息。如果您不想看到该消息,请将其放在if __name__块内。