我正在运行一个web2py服务器,它处理一些可能需要几秒钟到几分钟的总完成时间的请求。一旦与服务器建立了连接,并且它正在处理一个大约需要2-3分钟的请求,则到服务器的新连接必须等待,直到前者的请求完成。
我不知道我们是否可以在web2py中为此调整一些参数。我们有什么办法解决这个问题吗?
发布于 2011-06-16 22:37:41
当忙于连接时,web2py不会锁定服务器,但它会故意锁定用户会话。这意味着其他用户可以连接,但不能连接发起原始请求的用户。在需要时间的acton中,你可以这样做:
Session._unlock(响应)
这个问题(如果诊断是正确的)就会消失。
无论如何,让请求花费这么长时间并不是一个好主意。web服务器可能会杀死您的进程,并且不利于可用性。您应该有一个数据库表,您可以在其中对这些任务进行排队,并在后台进程中处理它们(在手册中进行了解释),然后使用ajax或comet(web2y/gluon/contrib/ html5 _messaging.py)检查长时间运行的任务的进度。
请在web2py邮件列表中提出这一点,我们将提供更多具体的示例。
https://stackoverflow.com/questions/6373517
复制相似问题