我们正在使用 Kubernetes/go-lang 编写一个包裹递送跟踪器应用程序。一切都很好,直到我们遇到了我们有某些调度需求的路障,并且无法弄清楚该使用什么。用例是:
- 一旦包裹被分配并送出,应跟踪其位置。
- 如果包裹到达仓库3小时后仍未分配,我们应标记为“明天发货”。
- 一些常见的 cron 类型的工作。
对于#1,我们计划安排一个作业,每 10 秒后轮询一次包裹的位置。但这是一次性的工作。包裹送达后。它应该消亡。
对于#2,我们计划安排一个定时/cron 作业,该作业将由我们的 API 触发。这项工作将安排在仓库收到包裹后 3 小时。
我们上面的#3 是用于各种内部目的的常用 cron 作业。
我们希望使用单个调度平台来满足所有这些类型的需求。
由于我们只使用 Kubernetes,我们希望利用它的作业调度功能。但我们对此有一定的怀疑。
- 我们可以从源代码创建这些工作吗?正如这里提到的,这是可能的。但我不确定我们的系统管理员是否会允许我们这样做。
我读过 Kubernetes 中的工作队列,我们可以将工作推送到工作队列,消费者将为这些工作项创建工作。
但是,我不知道如何为该工作队列创建一个永久消费者守护程序,它将轮询该队列并为每个工作项创建作业。
另一个疑问是如何在这里安排简单的 cron 作业(上面的#3)。
我也听说过Kala,但不确定这将如何适应 Kubernetes 世界。
任何参考、指针、链接或建议都将受到高度赞赏,因为我对 Kubernetes/Golang 很陌生,而且在谷歌上也找不到任何具体的东西。