问题描述
我一直在努力弄清这是怎么回事,但是我有一个flask app API。
直到两天前,当我开始从gunicorn收到一个Critical Worker Timeout错误时,它的运行情况还不错(没有提交导致此错误)。
经过一番调查,我发现对mongodb cloud atlas的任何update_one操作都会超时。更新会一直进行到记录,但过程会一直挂在那里,直到最终超时。
我创建了一个新环境,并获得了相同的结果,甚至在另一台计算机上进行了尝试,并更改了Atlas的IP地址设置,以防万一。
有什么想法吗?我将我在较新环境中尝试过的精简版的require.txt和脚本放入,结果相同。
certifi==2020.6.20
chardet==3.0.4
dnspython==2.0.0
idna==2.10
passlib==1.7.2
pymongo==3.11.0
requests==2.24.0
urllib3==1.25.10
CODE
from pymongo import MongoClient
import pymongo
import requests
from passlib.hash import pbkdf2_sha256 as sha
import urllib.parse
import sys
auth = urllib.parse.quote('password')
client = pymongo.MongoClient('mongodb+srv://xx:{}@xxx.gcp.mongodb.net/test?retryWrites=true&w=majority'.format(auth))
db = client['collection']
usersdb = db['users']
def userCheck( username ):
user = usersdb.find_one({'_id': username })
if user['free_contacts'] >= 1:
updatedContacts = user['free_contacts'] - 1
usersdb.update_one({'_id': username},{'$set': { 'free_contacts': updatedContacts }})
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)