python - 从 Python 客户端延迟 Kubernetes 部署
问题描述
我有一个 Django 软件,它使用Kubernetes 官方客户端与我的 kubernetes 集群交互以进行 pod 部署。这些 pod 是 dockerized Scala SBT 应用程序,一旦我将它们全部一起启动,编译就需要很多时间。
放置一些 time.sleep() 实际上会优化发布,但它也会延迟响应.. 我必须避免这种情况。
我正在尝试了解多处理并实际上适用于测试文件,即:
import time
from multiprocessing import Pool
def test1():
time.sleep(1)
print("before test1: " + str(time.time()))
time.sleep(3)
print("after test1: " + str(time.time()))
def test2():
print("before test2: " + str(time.time()))
time.sleep(4)
print("after test2: " + str(time.time()))
def main():
print(time.time())
pool = Pool()
result1 = pool.apply_async(test1)
result2 = pool.apply_async(test2)
result1.get()
result2.get()
main()
实际上,“after test1”和“after test2”会同时执行。但是当我将这些语句转移到需要的地方时,它会停止并行化。测试文件的结构与我需要的相同。一个带有池实例化 defs 的 def 和一个 sleep 在这些 defs 中,所有这些都在 @api_view 中。我还尝试使用其他库,如线程、异步等。在测试文件中一切正常。
我还看到我可以在 Dockerfile 中休眠,但我也看到在同一个线程中出现了一些问题。
所以我的问题是,在创建 V1Container 对象时是否可以提供某种原生设置?如何在不延迟响应时间的情况下延迟 pod 发布?
提前致谢!
编辑:我注意到即使使用测试文件,我也只会在终止操作后获得响应......即使它确实并行化了操作。也许正是不能让我延迟的响应的返回?我应该为此制作另一个 django 应用程序吗?
解决方案
推荐阅读
- jenkins - 多分支管道作业即使下游完成构建也不会开始构建步骤
- c++ - 尝试使用嵌套的 for 循环输出某些输出
- android - Android Studio 抛出空项目错误
- scala - 为什么我的源产生的缓冲区大小超过了缓冲区大小?
- bash - Cygwin bash shell 中的 for 循环后跟“>”
- php - 在一个 process.php 文件中提交第二个查询之前,如何查询 SQL 数据库?
- c++ - 是什么让 Boost `interval_map` 忽略插入?
- html - 如何通过 html 文件显示 MySQL 数据库中的内容?
- java - 调试内存泄漏 - org.hibernate.engine.StatefulPersistenceContext
- powerbi - 仅当另一列具有值 DAX 时 PowerBi 才计算日期