У меня есть этот код, где он загружает необходимые файлы и печатает необходимую информацию при запуске сервера, но внутри. if __name__ == "__main__":
Я начинаю фоновый процесс, а затем, наконец, выполняется app.run() ,Веб-приложение запускается много раз - web.py
Моя проблема заключается в том, что после загрузки всех и запускается фоновый процесс, он начинает печатать и загружать все с начала снова. А также он делает то же самое, когда сервер получает свой первый запрос (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» отпечатки трижды) после начала процесса и запроса с локального хоста: 8080/тест т = ег
Я прошел через this, но это решает проблему в колбу и Я использую web.py
'print 'Engine Started'' не находится внутри' if __name__ == "__main __": ' –
@PadraicCunningham, поэтому вы говорите, что я должен поместить все коды загрузки и печати внутри' if __name__ == "__main__": '? –
Только то, что находится внутри 'if __name__ ==" __main __ "', не будет выполнено, если что-либо импортируется из файла. Это основной смысл его использования, только когда вы на самом деле выполняете файл, что-нибудь внутри if будет запущено. –