小编joh*_*ich的帖子

如何从我的 FastAPI 应用程序向另一个站点 (API) 发送 HTTP 请求?

我正在尝试http://httpbin.org/uuid使用以下代码片段一次向服务器发送 100 个请求

from fastapi import FastAPI
from time import sleep
from time import time
import requests
import asyncio

app = FastAPI()

URL= "http://httpbin.org/uuid"


# @app.get("/")
async def main():
    r = requests.get(URL)
    # print(r.text)
    
    return r.text

async def task():
    tasks = [main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main(),main()]
    # print(tasks)
    # input("stop")
    result = await asyncio.gather(*tasks)
    print (result)

@app.get('/')
def f():
    start = time()
    asyncio.run(task())
    print("time: ",time()-start)
Run Code Online (Sandbox Code Playgroud)

我将 FastAPI 与 Asyncio 结合使用,以实现大约 3 秒或更短的最短时间,但使用上述方法我得到的总时间为 66 秒,超过一分钟。我还想保留main用于附加操作的功能r.text。我知道要实现如此短的时间,需要并发性,但我不确定我在这里犯了什么错误。

python httprequest async-await python-asyncio fastapi

19
推荐指数
1
解决办法
7728
查看次数

从 WSL 中运行 VSCode 远程 ssh 到另一个远程 GCP 实例

我有一个受到管理员严格保护的 Windows 10 桌面,并且在我的 Windows 10 中安装了 Ubuntu 20 WSL。

目标 我想从 WSL 中运行 VScode 远程 ssh 到我的 GCP 实例,这是一个用于代码开发和执行的高配置机器。

问题 我在 WSL vscode 中对 GCP 实例执行远程 ssh 时遇到错误,提示连接超时。

采取的步骤

  1. 打开 WSL
  2. 使用 ssh-keygen 生成 id_rsa.pub
  3. 打开 Vscode > 远程 ssh
  4. 添加实例的ssh用户@IP
  5. 从 VScode 连接到主机

我能做什么

  1. 我可以通过 WSL 通过 ssh 访问 GCP 实例。
  2. 我可以在 WSL 中打开 VScode

ssh visual-studio-code windows-subsystem-for-linux vscode-remote

8
推荐指数
0
解决办法
1093
查看次数

有没有办法从 pubsub 消息存储中删除消息?

我正在使用 GCP Pubsub 发送和接收 JSON 数据,Pubsub 有一个功能可以保留 10 分钟到 7 天且不少于 10 分钟的时间段内的消息(根据官方文档)。有什么办法可以删除从 Pubsub 拉取的消息吗?如果不是,那么当我们不愿意从消息存储中删除违反基本队列属性的消息时,为什么我们说 Pubsub 是一种“排队技术”呢?

我正在使用 python Pubsub 客户端库来编写脚本。

publish-subscribe google-cloud-platform google-cloud-pubsub

6
推荐指数
2
解决办法
2万
查看次数

如何在docker日志中记录docker healthcheck状态?

客观的

我想通过验证 docker 日志来检查我的 docker 容器是否健康。

要求

我有两个文件,即Dockerfileloop.sh我已将 HEALTHCHECK 添加到我的 docker 中,如下所示:

Dockerfile

FROM alpine
ADD . /
HEALTHCHECK --interval=1s --timeout=30s --retries=3 CMD echo {'health':'healthy'}
CMD ["sh","loop.sh"]
Run Code Online (Sandbox Code Playgroud)

循环语句

#!/bin/sh

while 1>0;do echo "1"; sleep 2; done;
Run Code Online (Sandbox Code Playgroud)

观察

  • 观察1

docker logs输出integer 1中提到的内容,loop.sh但不输出我的泊坞窗的健康状态。下面附有一张图片 -
docker日志的输出

  • 观察2

docker ps命令显示容器运行状况良好,因此推断我的运行状况检查正在运行。请找到下面的附图 -

Docker ps 命令的输出

  • 观察3

docker inspect命令还显示 docker 容器的健康状态。请找到下面的屏幕截图 -
健康状况

问题

如何记录此{'health':'healthy'}健康检查状态以便可以在 docker 日志中看到它?

logging docker dockerfile

6
推荐指数
1
解决办法
3370
查看次数

我们如何在colab.research.google.com中使用Selenium Webdriver?

我想在colab.research.google.com中使用Chrome的Selenium Webdriver进行快速处理。我可以使用安装Selenium,!pip install selenium但chrome的webdriver需要通向webdriverChrome.exe的路径。我应该如何使用它?

PS- colab.research.google.com是一个在线平台,可为与深度学习相关的快速计算问题提供GPU。请避免使用诸如webdriver.Chrome(path)之类的解决方案。

selenium selenium-webdriver google-colaboratory

5
推荐指数
5
解决办法
5741
查看次数

如何恢复我在 hub.docker.com 上的最后一次推送?

我通过 hub.docker.com 上的错误 docker 映像推送和覆盖来损坏我的工作 docker 映像。如何恢复上次推送?

docker dockerhub

5
推荐指数
1
解决办法
3643
查看次数

numpy.tensordot 函数是如何逐步工作的?

我是 numpy 的新手,所以我在可视化numpy.tensordot()函数的工作时遇到了一些问题。根据 的文档tensordot,轴在参数中传递,其中轴 = 0 或 1 表示正常矩阵乘法,而轴 = 2 表示收缩。

有人可以解释一下乘法将如何处理给定的例子吗?

示例 1:a=[1,1] b=[2,2] for axes=0,1为什么它会在轴 = 2 时引发错误?
示例 2:a=[[1,1],[1,1]] b=[[2,2],[2,2]] for axes=0,1,2

python numpy

3
推荐指数
1
解决办法
2904
查看次数