请告诉我之间的差异ThreadPool,并Pool在multiprocessing模块.当我尝试我的代码时,这是我看到的主要区别:
from multiprocessing import Pool
import os, time
print("hi outside of main()")
def hello(x):
print("inside hello()")
print("Proccess id: ", os.getpid())
time.sleep(3)
return x*x
if __name__ == "__main__":
p = Pool(5)
pool_output = p.map(hello, range(3))
print(pool_output)
Run Code Online (Sandbox Code Playgroud)
我看到以下输出:
hi outside of main()
hi outside of main()
hi outside of main()
hi outside of main()
hi outside of main()
hi outside of main()
inside hello()
Proccess id: 13268
inside hello()
Proccess id: 11104
inside hello()
Proccess id: …Run Code Online (Sandbox Code Playgroud) python multiprocessing threadpool python-3.x python-multiprocessing
在机器人框架中,看起来它默认使用“INFO”日志级别记录“=”等关键字的消息。前任:
<Test case>
${xyz} = "hello"
Run Code Online (Sandbox Code Playgroud)
将记录消息:
'INFO': ${xyz} = "hello"
Run Code Online (Sandbox Code Playgroud)
我想将其日志级别降低为“DEBUG”或“TRACE”,但似乎无法在源代码中找到它。对此有什么建议吗?
这可能是一个非常愚蠢的问题,但是'PyPy'和'PyPI'之间的区别是什么?它们是一样的吗?
如果我有一个 URL(例如:“ssh://hello@xyz.com:553/random_uri”、“ https://test.blah.blah:993/random_uri2 ”),我想设置/更新用户名网址。我知道有 urllib.parse.urlparse ( https://docs.python.org/3/library/urllib.parse.html ) 会分解它们,但我在创建新的 url (或更新) 解析时遇到问题结果是我打算使用的用户名。
有没有可以帮助设置/更新用户名的Python库?最好使用 urlparse 的解析结果。
我正在尝试了解这些mock/monkeypatch/pytest-mock功能。
让我知道是否可行。如果不能,请建议我如何测试此代码。
我的代码结构:
/
./app
../__init__.py
../some_module1
.../__init__.py
../some_module2
.../__init__.py
./tests
../test_db.py
Run Code Online (Sandbox Code Playgroud)
在/app/__init__.py此处启动我的应用程序(如果有帮助,则为Flask应用程序),并初始化与MongoDB数据库的数据库连接对象:
# ...
def create_app():
# ...
return app
db_conn = DB()
Run Code Online (Sandbox Code Playgroud)
在some_module1与some_module导入db_conn对象,并把它作为自己的部分功能:
## some_module1/__init__.py
from app import db_conn
...
db = db_conn.db_name2.db_collection2
def some_func1():
data = db.find()
# check and do something with data
return boolean_result
...
## some_module2/__init__.py
from app import db_conn
...
db = db_conn.db_name1.db_collection1
def some_func2():
data = db.find()
# check and do something …Run Code Online (Sandbox Code Playgroud) 在搜索了 Python Flask-Login 后,我找到了利用 header/api-key 身份验证而不是默认的 cookie 身份验证的方法。 https://flask-login.readthedocs.io/en/latest/#disabling-session-cookie-for-apis
然而,在初始/请求中,Flask 仍然在会话中使用 cookie 进行响应。上述方法仅确保任何新请求(@login_required)都能够在没有 cookie 的情况下进行身份验证(并使用标头或我的实现所需的任何方法)。
有办法禁用它吗?或者我错过了什么。
我正在尝试学习普罗米修斯(并最终使用它grafana)。到目前为止,我正在尝试学习的主要用例是能够从我的客户端进行更新(没有普罗米修斯刮擦)。我有一个pushgateway,我希望我的脚本/进程能够更新prometheus(然后grafana 获取该统计数据)。我有一个简单的脚本,我开始使用它,我在其中获取了 cpu 利用率(将其计算为百分比)并将其发送给 prometheus:
from prometheus_client import CollectorRegistry, Gauge, push_to_gateway, Summary, Histogram
from time import sleep
from random import randint, random
registry = CollectorRegistry()
cpu_util_sum_metric = Summary('cpu_util_summary', 'cpu_util_summary', registry=registry)
cpu_util_hist_metric = Summary('cpu_util_hist', 'cpu_util_hist', registry=registry)
for i in range(90):
cpu_util = randint(0, 100)
cpu_util_sum_metric.observe(float(cpu_util))
cpu_util_hist_metric.observe(float(cpu_util))
print('cpu util is: {}'.format(cpu_util))
res = push_to_gateway('localhost:9091', job='cpu_stats', registry=registry)
print('push_to_gateway result is:', str(res))
sleep(5)
Run Code Online (Sandbox Code Playgroud)
当我运行它时,在普罗米修斯浏览器中我看到以下指标(基于我的“cpu_util_hist”和“cpu_util_sum”):
首先,我想我会在“cpu_util_hist”或“cpu_util_summary”的不同时间戳(有点像excel中)有单点,我可以用它们在prometheus或grafana中绘制。我怎样才能做到这一点?我需要将它们作为总和并计算利率/利率吗?我对普罗米修斯有什么误解。
python ×6
flask ×1
flask-login ×1
mocking ×1
prometheus ×1
pypi ×1
pypy ×1
pytest ×1
pytest-mock ×1
python-3.x ×1
threadpool ×1
unit-testing ×1
urllib ×1
urlparse ×1