【发布时间】:2013-08-14 11:38:20
【问题描述】:
我读过http://bottlepy.org/docs/dev/tutorial_app.html#server-setup
和running Apache + Bottle + Python
和Bottle + Apache + WSGI + Sessions
我想知道是否可以在 mod_wsgi 服务器上运行异步 rest api 调用来调用一个不返回任何内容(它的后端逻辑)并且是非阻塞的 py 函数 - 所以我查找了 gevent 但我是还没有找到可以使用 gevents 运行 mod_wsgi 的解决方案。
是否有任何解决方案可以使用 mod_wsgi 或任何其他替代方法在 apache 服务器上运行异步调用?
更新 根据下面安德烈斯的回答;
我用瓶子 + celery 运行了一个简单的 myip 地址返回。所以必须将芹菜作为@celery.task 运行,然后运行(host='localhost', port=8080, debug=True)?是否也需要在终端上启动芹菜工人?在 [runnin local] 之前从未使用过 celery 也可以使用装饰器 @route(/something) 运行瓶子,但 app.route 没有 where app = Bottle() 可能是由于某些 .wsgi 文件错误?
【问题讨论】:
-
您可以使用 celery,定义您的任务,并从请求处理函数异步运行它们,它不会阻塞,因此处理函数 func 立即返回,但您的客户端应用程序必须定期检查以查看如果有结果。
-
@andrean 如果我必须从客户端应用程序接收请求并在处理后将其存储在数据库中怎么办?但是用户应该继续在他的浏览器上进行通常的交互吗?是不是应该退货?
标签: python-2.7 apache2 celery mod-wsgi bottle