问题标签 [sanic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python-3.x - RuntimeError:此事件循环已在运行
我正在尝试使用以下代码在 sanic 中运行异步 3rd 方文件上传
这就是我从路由中调用请求的方式。
但是,它返回 RuntimeError:此事件循环已在运行。错误
python-3.x - sanic.exceptions.RequestTimeout:Sanic 中的请求超时
我运行 sanic 应用程序,即使没有任何请求进入,它也会每隔几秒钟引发一次异常。
如何解决问题?
python-3.x - 在请求中运行后台异步任务而不在 pytest-sanic 中关闭事件循环
我想在 pytest-sanic 中并行运行 2 个测试,但是当我尝试关闭事件循环时,会引发以下错误。
这是代码的简化版本的样子
如何在同一个测试用例中运行多个请求,并在后台使用异步操作运行一次。
更新:我在 API 调用中运行异步任务,当我禁用它时,我没有收到错误。但是,我需要在后台执行异步任务时测试 API。
python-3.x - 如何为所有正在运行的 Sanic 服务器进程共享数据
我需要与所有 Sanic 工作人员共享一个简单对象(字节对象)。有人知道该怎么做吗?当然,我知道 multiprocessing.Array,但是如何通过 Sanic API 将其传播给所有工作人员?
python-3.x - Prometheus 没有为计数器捕获数据
如果从 ipython 控制台或 celery 任务调用增量,Prometheus 无法为计数器捕获数据。计数器适用于 API 请求,但在 API 请求之外不起作用,就像我从 Ipython 控制台尝试它,从芹菜任务增加计数器一样。
Prometheus 也没有抛出任何异常。
这是我在 Sanic Python 应用程序中用于配置 Prometheus 的配置:
以前我们使用的是 sanic-prometheus 库:
提前致谢。
python - 如何使用 sanic API 返回浮点数(或整数)?
我正在创建一个简单的 Sanic REST API,但无法弄清楚如何返回数字数据。查看文档后,您似乎只能返回json
, html
,text
等,但不能返回float
or int
。
我遵循文档中的基本示例,除了将返回切换为浮点数:
但是,如果 return 语句是return json({"hello": "world"})
. 为什么我不能返回浮点数?我可以将其返回为return text(1.1)
,但是调用它的客户是否将其接收为 a str
(而不是 a float
)?
python - 使用 Nginx 作为 Sanic + Gunicorn 的反向代理时性能下降
我刚刚开始学习 Sanic 框架,因为它的基准测试速度很快。我制作了一个简单的 hello world API,然后将它与 Gunicorn 连接起来。性能相当不错,但是当我将它与 Nginx 结合使用时,它变得非常糟糕。我发现带有 Nginx 的 Gunicorn 进程限制为每个进程的 1% - 4% CPU 资源。如果没有 Nginx,Gunicorn 可以达到每个进程的 10%。我以为是因为 Nginx 配置错误。谁能给我一些建议?
服务器信息:
Sanic + Gunicorn 性能:
Sanic + Gunicorn + Nginx 性能:
Sanic 应用程序:
独角兽命令:
全局 Nginx 配置:
Sanic + Gunicorn 的 Nginx 配置:
python - aiohttp asyncio.TimeoutError 从无使用 ClientSession
这是一个奇怪的错误,因为当我尝试/捕捉它时,它什么也没打印。
我正在使用 sanic 服务器来 asyncio.gather 同时收集一堆图像,超过 3000 张图像。
处理较小的样本量时,我没有遇到此错误。
简化示例:
这个错误可能是什么?如果这是我的主机/互联网的某种限制,我该如何避免呢?
如果有帮助,我正在使用来自 DigitalOcean 的带有 1vCPU 和 1GB RAM 的基本液滴
全栈错误:
python - asyncio.sleep 阻塞了?
我正在运行以下代码。每个请求 3 个请求(我正在快速刷新的 3 个浏览器选项卡)。
time.sleep
当我阻塞时,第一个需要 60 秒才能运行所有请求。
第二个asycio.sleep
立即运行所有 3 个请求,因为我没有等待。
第三个await asyncio.sleep
是第一个请求需要 20 秒,第二个请求需要 10 秒,第三个请求需要 10 秒。即总共40多岁。我希望我可以在 20 秒左右运行大量请求,因为我不应该阻塞?