在我的理解中,当查询超过它的分配时间时,maxTimeMS应该立即终止查询(+ - 2,3秒).但是,mongo并没有立即查询并占用太多时间.
输出currentOp()之后可以看到这一点
{"inprog":[{"opid":176078308,"active":true,"secs_running":105,"op":"query","ns":"xxx","query":{"aggregate": "推文","管道":[{"$ match":{"gTs":{"$ lte":ISODate("2014-07-25T22:00:00Z"),"$ gte":ISODate("2014 -07-20T21:00:00Z")},"RE_H":{"$ in":[NumberLong("884327843395156951")]}}},{"$ match":{"$ and":[{"l ":{"$ in":["bandra","mumbai","thane","bombay","mahim"]}},{"ts":{"$ lte":ISODate("2014-07- 25T21:16:00Z"),"$ gte":ISODate("2014-07-20T21:16:00Z")}}]}},{"$ project":{"!" :1,"s":1,"nR":1,"ts":1}}],"光标":{
},
"maxTimeMS" : 60000
},
"client" : "xxx.xxx.xxx.xxx",
"desc" : "conn56556",
"threadId" : "0x7f96e1cf6700",
"connectionId" : 56556,
"waitingForLock" : false,
"numYields" : 4111,
"lockStats" : {
"timeLockedMicros" : {
"r" : NumberLong(16472467),
"w" : NumberLong(0)
},
"timeAcquiringMicros" : {
"r" : NumberLong(106194),
"w" : NumberLong(0)
}
}
}
]
Run Code Online (Sandbox Code Playgroud)
}
此查询的maxTimeMS为60秒(60,000毫秒),持续105秒.在我看来,这太荒谬了.Mongo在60秒内不应超过2,3秒才能杀死它.
有人可以确认这是否是Mongo的预期行为?
我有一台服务器需要能够接受JSON然后处理它然后再发送JSON.我服务器端的代码使用的是bottle.py和cherrypy.关注的路线如下:
@route ('/tagTweets', method='POST')
def tagTweets():
response.content_type = 'application/json'
# here I need to be able to parse JSON send along in this request.
Run Code Online (Sandbox Code Playgroud)
要请求此页面并测试功能,我正在使用请求模块代码:
我必须发送的数据是推文列表.数据本身是从某个服务器获取的,该服务器返回推文列表.对于获取推文,我正在使用requests.get然后使用响应对象的json方法.这工作正常.现在我经过一些处理,我必须发送这个json,就像我提取到另一台服务器.
url = "http://localhost:8080/tagTweets"
data = {'sender': 'Alice', 'receiver': 'Bob', 'message': 'We did it!'}
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
r = requests.post(url, data=json.dumps(data), headers=headers)
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何获取访问请求的json发送.
我正在尝试编译一个正则表达式,以便能够r'#\w+'从推文中累积一系列hashtags().我希望能够编译两个正则表达式,可以从推文的开头和结尾处执行此操作.我使用的是python 272,我的代码是这样的.
HASHTAG_SEQ_REGEX_PATTERN = r"""
( #Outermost grouping to match overall regex
#\w+ #The hashtag matching. It's a valid combination of \w+
([:\s,]*#\w+)* #This is an optional (0 or more) sequence of hashtags separated by [\s,:]*
) #Closing parenthesis of outermost grouping to match overall regex
"""
LEFT_HASHTAG_REGEX_SEQ = re.compile('^' + HASHTAG_SEQ_REGEX_PATTERN , re.VERBOSE | re.IGNORECASE)
Run Code Online (Sandbox Code Playgroud)
当我正在编译正则表达式的行执行时,我收到以下错误:
sre_constants.error: unbalanced parenthesis
Run Code Online (Sandbox Code Playgroud)
我不知道为什么我得到这个,因为我的正则表达式模式中没有不平衡的括号.
我有一个运行ubuntu 14.04的mongo 2.6+安装,其中'sudo service mongod start/stop/restart'工作得很好.
出于好奇,我开始在/etc/init.d中寻找mongod的'upstart'脚本,而且令我困惑的是,mongod的init脚本没有提及任何与mongo相关的活动.
/etc/init.d/mongod里面mongod的确切内容如下:
有人请帮助我了解这里发生了什么.