Python 个线程 运行 在 Docker 容器中是并行的,但是 运行 当容器在 Google 云 运行 上 运行 时是顺序的
Python threads run in parallel when in Docker container, but run sequentially when container is run on Google Cloud Run
首先 post 在 SO 上,让我知道如何改进我的问题。
1。摘要
目标:我的应用程序是一个 Craigslist 抓取工具,它会找到新的 posts 并将提要发送到用户的电子邮件。它有一个始终侦听请求的主线程,以及一个由主线程管理的工作线程,并且正在工作或休眠。
预期与实际结果:如标题所述,该应用程序在本地容器中运行良好,但当它托管在云 运行 上时,工作线程的输出和 side-effects 是推迟到工作线程被终止。
似乎工作线程只在主线程调用杀死它时才启动,此时工作线程只执行一次它的工作迭代然后杀死自己。
没有错误消息。
2。我试过的。
我试过更改一些 Cloud 运行 容器环境设置,例如增加内存量和 vCPU 数量。
settings
请让我知道哪些附加信息会有所帮助。
这个设置解决了问题:
教训:始终检查所有设置。
除非您为 Cloud 运行 启用 No CPU Throttling,否则您不能使用后台线程。
请参阅本文了解支持您的工作负载的最新功能:
Run more workloads on Cloud Run with new CPU allocation controls
总之添加此命令行选项:--no-cpu-throttling
gcloud beta run services update SERVICE-NAME --no-cpu-throttling
同时设置CPU的个数大于--cpu=N
首先 post 在 SO 上,让我知道如何改进我的问题。
1。摘要
目标:我的应用程序是一个 Craigslist 抓取工具,它会找到新的 posts 并将提要发送到用户的电子邮件。它有一个始终侦听请求的主线程,以及一个由主线程管理的工作线程,并且正在工作或休眠。
预期与实际结果:如标题所述,该应用程序在本地容器中运行良好,但当它托管在云 运行 上时,工作线程的输出和 side-effects 是推迟到工作线程被终止。
似乎工作线程只在主线程调用杀死它时才启动,此时工作线程只执行一次它的工作迭代然后杀死自己。
没有错误消息。
2。我试过的。
我试过更改一些 Cloud 运行 容器环境设置,例如增加内存量和 vCPU 数量。settings
请让我知道哪些附加信息会有所帮助。
这个设置解决了问题:
教训:始终检查所有设置。
除非您为 Cloud 运行 启用 No CPU Throttling,否则您不能使用后台线程。
请参阅本文了解支持您的工作负载的最新功能:
Run more workloads on Cloud Run with new CPU allocation controls
总之添加此命令行选项:--no-cpu-throttling
gcloud beta run services update SERVICE-NAME --no-cpu-throttling
同时设置CPU的个数大于--cpu=N