问题标签 [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.

0 投票
1 回答
5321 浏览

python-3.x - RuntimeError:此事件循环已在运行

我正在尝试使用以下代码在 sanic 中运行异步 3rd 方文件上传

这就是我从路由中调用请求的方式。

但是,它返回 RuntimeError:此事件循环已在运行。错误

0 投票
2 回答
1266 浏览

python-3.x - sanic.exceptions.RequestTimeout:Sanic 中的请求超时

我运行 sanic 应用程序,即使没有任何请求进入,它也会每隔几秒钟引发一次异常。

如何解决问题?

0 投票
1 回答
1689 浏览

python - 找不到夹具“循环”

我使用 PyTest 在 Sanic 中运行以下测试,但我得到了

找不到夹具“循环”

错误,我按照make app 返回 Sanic app的链接中的教程进行操作。

0 投票
0 回答
864 浏览

python-3.x - 在请求中运行后台异步任务而不在 pytest-sanic 中关闭事件循环

我想在 pytest-sanic 中并行运行 2 个测试,但是当我尝试关闭事件循环时,会引发以下错误。

这是代码的简化版本的样子

如何在同一个测试用例中运行多个请求,并在后台使用异步操作运行一次。

更新:我在 API 调用中运行异步任务,当我禁用它时,我没有收到错误。但是,我需要在后台执行异步任务时测试 API。

0 投票
1 回答
486 浏览

python-3.x - 如何为所有正在运行的 Sanic 服务器进程共享数据

我需要与所有 Sanic 工作人员共享一个简单对象(字节对象)。有人知道该怎么做吗?当然,我知道 multiprocessing.Array,但是如何通过 Sanic API 将其传播给所有工作人员?

0 投票
1 回答
1512 浏览

python-3.x - Prometheus 没有为计数器捕获数据

如果从 ipython 控制台或 celery 任务调用增量,Prometheus 无法为计数器捕获数据。计数器适用于 API 请求,但在 API 请求之外不起作用,就像我从 Ipython 控制台尝试它,从芹菜任务增加计数器一样。

Prometheus 也没有抛出任何异常。

这是我在 Sanic Python 应用程序中用于配置 Prometheus 的配置:

以前我们使用的是 sanic-prometheus 库:

提前致谢。

0 投票
1 回答
388 浏览

python - 如何使用 sanic API 返回浮点数(或整数)?

我正在创建一个简单的 Sanic REST API,但无法弄清楚如何返回数字数据。查看文档后,您似乎只能返回json, html,text等,但不能返回floator int

我遵循文档中的基本示例,除了将返回切换为浮点数:

但是,如果 return 语句是return json({"hello": "world"}). 为什么我不能返回浮点数?我可以将其返回为return text(1.1),但是调用它的客户是否将其接收为 a str(而不是 a float)?

0 投票
1 回答
1981 浏览

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 配置:

0 投票
1 回答
2783 浏览

python - aiohttp asyncio.TimeoutError 从无使用 ClientSession

这是一个奇怪的错误,因为当我尝试/捕捉它时,它什么也没打印。

我正在使用 sanic 服务器来 asyncio.gather 同时收集一堆图像,超过 3000 张图像。

处理较小的样本量时,我没有遇到此错误。

简化示例:

这个错误可能是什么?如果这是我的主机/互联网的某种限制,我该如何避免呢?

如果有帮助,我正在使用来自 DigitalOcean 的带有 1vCPU 和 1GB RAM 的基本液滴

全栈错误:

0 投票
0 回答
776 浏览

python - asyncio.sleep 阻塞了?

我正在运行以下代码。每个请求 3 个请求(我正在快速刷新的 3 个浏览器选项卡)。

time.sleep当我阻塞时,第一个需要 60 秒才能运行所有请求。

第二个asycio.sleep立即运行所有 3 个请求,因为我没有等待。

第三个await asyncio.sleep是第一个请求需要 20 秒,第二个请求需要 10 秒,第三个请求需要 10 秒。即总共40多岁。我希望我可以在 20 秒左右运行大量请求,因为我不应该阻塞?