我有一个问题,我希望可以通过 Django 中的某种形式的关闭挂钩来解决。
我仍然是 Python/Django 开发的初学者,为了帮助学习,我为自己设置了一个项目,开发一个在浏览器中运行的 COMET/Reverse Ajax 风格的聊天网站。浏览器不断地轮询服务器以获取任何消息。当服务器收到一个轮询请求时,它会检查是否有任何消息在等待,如果没有,它会尝试获取一个已经获取的threading.Lock对象的锁。这会导致处理请求的线程阻塞,直到收到消息并释放前面提到的锁。
当我关闭服务器时,我的问题出现了。此时我正在使用开发服务器(python manage.py runserver)。如果有一个线程被上述进程阻塞,则服务器不会关闭。
有没有一种方法可以在服务器尝试关闭时执行代码,以便我可以释放任何等待的线程?
我已经查看了以下类似的问题,但它并没有帮助我。有人猜测这样的事件挂钩不存在,但没有明确的答案。我用谷歌搜索了高低,但没有任何运气。
我正在使用 Python 2.7 和 Django 1.5。
感谢您提供的任何帮助