我编写了一个Django应用程序,它利用Python线程创建一个Web蜘蛛,蜘蛛作为一系列线程来检查链接。
当我使用django测试服务器(内置)运行此应用程序时,应用程序运行良好,线程似乎按时开始和停止。
但是,在Apache上运行应用程序似乎线程没有开始运行(大约80秒后应该有一个排队的数据库更新,并且没有发生这些更改)。
有没有人知道我在这里缺少什么?
- 编辑:我的问题是,Apache如何处理线程应用程序,即是否可以从单个应用程序运行多少个线程?
任何帮助将不胜感激!
答案 0 :(得分:3)
最有可能的是,您错过了新流程的创建。 Apache不会在单个进程中运行,而是偶尔为请求分叉新进程(取决于dozen or so configuration parameters)。如果在每个进程中运行django,它们将不共享内存,并且在一个工作程序中生成的结果将不会被其他任何进程看到。此外,Apache进程可能会终止(在空闲时或在一段时间后),丢弃内存中的结果。