gpt4 book ai didi

python - 在 Django 中使用 pylucene 时,执行 initVM 和 attachCurrentThread 的最佳位置在哪里

转载 作者:太空狗 更新时间:2023-10-30 03:07:00 25 4
gpt4 key购买 nike

我在基于 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com