我有两个python文件。一个名为Test.py.这从getList.py文件中调用方法get_values()
#Test.py
import sys
sys.path.insert(0,"/data/")
import getList
import json
final_list = getList.get_values()
print json.dumps(final_list)

#getList.py
import sys
sys.path.insert(0,/data/pymongo/)
import pymongo
from pymongo import Connection
def get_values():
final_list = list()
connection = Connection('localhost', 5000)
db = connection.testScript
collection = db.scriptCache
for post in collection.find({},{"author":1,"_id":0}):
final_list.append(post)
return final_list

我正在使用jython从java执行文件Test.py,代码如下:
public void executeScript(String inputFile, String outputFile) throws FileNotFoundException {
final PythonInterpreter inter = new PythonInterpreter();
Writer writer = null;
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outputFile)));
inter.setOut(writer);
inter.execfile(inputFile);
}

mongo文档结构是: {" _id" :ObjectId(" 54e6e9338c27b9a4542b1499")," name" :" Python","作者" :"詹姆斯" }
在getList.py中,我正在查询"作者"首次。如果我执行Test.py,它会返回正确的结果。
后来我正在编辑getList.py来查询" name"并执行Test.py但我得到的结果与#34; author"。
相同仅在通过服务执行java类时才会出现此问题。如果我通过一个独立的程序执行相同的操作,它可以正常工作。
是否需要配置任何属性以避免此类缓存?
答案 0 :(得分:0)
Python第一次调用时会缓存getList的结果,并在再次访问时返回相同的值。
每次执行Test.py时执行getList.py,我们需要重新加载getList.py。
包含下线(重新加载)解决了这个问题。
导入getList
重载(的GetList)