- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在基于 django 的站点中使用 pylucene,我想知道是否有人知道启动 jvm 和附加线程的最佳位置。我不想每次有人加载页面时都必须启动一个新的 jvm,但是当我在搜索时附加线程时,我偶尔会在 django 中遇到神秘的“无法导入名称”错误。
在views.py中附加线程是否错误?
编辑:我正在专门寻找一种方法来实例化单个 jvm 并使其保持运行状态,以便我可以根据需要将线程附加到它。实例化 jvm 大约需要两秒钟,这在搜索时是一个明显的延迟。
最佳答案
我从未在 Django 中使用过 pylucene,虽然 initVM()
应该在 Django 服务器启动时几乎已加载的文件中调用(settings.py
将是一个好地方)。
关于attachCurrentThread
:问题是你在哪里使用lucene
模块。如果它在 views.py 中,那么当然在 views.py 中进行。虽然我认为你不应该在每次函数调用时都这样做。如果您使用基于类的通用 Django View ,您可以将 VM 环境保存在特定于对象的变量中。您是否在 views.py 的全局范围内尝试过?
另外请记住,在调用 attachCurrentThread
时总是涉及两个步骤:
vm_env = lucene.getVMEnv()
vm_env.attachCurrentThread()
添加(见下面的评论):
我认为这取决于您在项目中导入设置的方式。如果您只是在您的应用程序中执行 ìmport settings
,它会多次加载该模块。相反总是从 django.conf import settings
做。据我所知,您的原始设置文件只会在服务器启动时加载一次
关于python - 在 Django 中使用 pylucene 时,执行 initVM 和 attachCurrentThread 的最佳位置在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6536179/
我在 django 中使用 mod-wsgi,在 django 中我使用 pylucene 进行全文搜索。 虽然mod-wsgi配置成嵌入式模式,完全没有问题。但是当 mod-wsgi 配置为守护进程
我安装了 PyLucene 4.10.1(我相信这是最新的)。但是,当我调用 initVM() 时,出现了一个 SIGSEGV,我不知道该怎么办。 这是输出: [zzz@xxx gitCode]$ p
我在基于 django 的站点中使用 pylucene,我想知道是否有人知道启动 jvm 和附加线程的最佳位置。我不想每次有人加载页面时都必须启动一个新的 jvm,但是当我在搜索时附加线程时,我偶尔会
我是一名优秀的程序员,十分优秀!