Using web.py as non blocking http-server

a 夏天 提交于 2019-12-03 02:10:21

I found a working solution. In a seperate module i create my webserver:

import web
import threading
class MyWebserver(threading.Thread):

    def run (self):
        urls = ('/', 'MyWebserver')
        app = web.application(urls, globals())
        app.run()

    def POST ...

In the main programm i just call

MyWebserver().start()

and than go on with whatever i want while having the webserver working in the background.

Wouldn't is be simpler to re-write your main-loop code to be a function that you call over and over again, and then call that from the function that you pass to runsimple...

It's guaranteed not to fully satisfy your requirements, but if you're in a rush, it might be easiest.

or just use Tornado, a non-blocking webserver for Python that has an API similar to webpy - http://www.tornadoweb.org/

I have also recently used Beanstalkd to queue up tasks that will run in a separate thread. Your web.py handler just drops a job into a pipe and a completely separate script executes it. You could have any number of these, and you get the benefits of advanced queue control, etc..

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!