【问题标题】:Delay a python function call on a different pod [closed]在不同的 pod 上延迟 python 函数调用 [关闭]
【发布时间】:2021-08-19 18:30:09
【问题描述】:

我有一个部署到 Kubernetes 的软件,我有一个场景,我想稍后调用一个函数,但我不确定我当前的 pod 是否会执行它(例如,它可能会按比例缩小)。

因此,我需要一种机制的帮助,该机制使我能够在我的软件的一个 pod 上安排一个功能以供以后使用,该 pod 可能是也可能不是安排它的那个,以及一种决定不 如果提前满足某些条件则执行。

另外 - 我需要在任何给定时间点为 数千次 的此类调用启用此功能,这是一个使用 Twisted python 每天处理数百万个任务的非常快速的执行软件。但是考虑到规模的扩大和缩小,我不能把它放在反应堆上。

几乎任何已知模块的使用,外部 redis/db 都可以。

所以 - 我需要这个社区的帮助...

提前致谢!

【问题讨论】:

  • 你的问题很模糊,似乎更多的是系统设计而不是编程
  • 你考虑过kubernetes.io/docs/concepts/workloads/controllers/job,你遇到了什么问题?
  • 打鼓 - 不是设计问题,或者至少不是整个设计问题。这个问题以一种模糊的方式写出来,因为我试图保持简单而不是充斥着不相关的细节(我认为这可能有助于其他人在其他情况下需要延迟系统中另一个实体完成的任务。跨度>
  • 致乔纳斯——这里的工作不匹配,因为工作的概念是运行直到用尽它的需要——这在我的情况下从未发生过。但即使有作业 - K8S 可能会决定将它们重新定位到不同的节点,并且内存中的东西会丢失。所以我需要一个无状态的解决方案。

标签: python kubernetes distributed


【解决方案1】:

您粗略地描述了任何工作队列系统,其中 Celery 是 Python 中最常见的一种。使用 RabbitMQ 作为代理,它可以轻松扩展到您向其发送的任何流量。另请查看 Dask,但我认为 Dask 是 baaaaaad,所以我提及它只是为了完整性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    相关资源
    最近更新 更多