在我的.NET 6 Kubernetes应用程序(C#,Linux)中,它需要每10分钟调用一个方法。有N个pod。我有以下选项,
1.设置一个分布式锁,比如Redis锁,每个示例每分钟都要尝试获取锁,一旦获取锁,就调用函数,10分钟后释放锁。
1.创建一个API来调用函数。在计划程序中设置一个作业,例如Cron、Windows任务计划程序或公司中可用的任何商业计划程序。让计划程序定期调用API。
在我的.NET 6 Kubernetes应用程序(C#,Linux)中,它需要每10分钟调用一个方法。有N个pod。我有以下选项,
1.设置一个分布式锁,比如Redis锁,每个示例每分钟都要尝试获取锁,一旦获取锁,就调用函数,10分钟后释放锁。
1.创建一个API来调用函数。在计划程序中设置一个作业,例如Cron、Windows任务计划程序或公司中可用的任何商业计划程序。让计划程序定期调用API。
1条答案
按热度按时间gudnpqoy1#
正如@Guru Stron AFAIK kubernetes所提到的允许调度Cron jobs,您可以尝试一下。根据具体情况,您可以创建一个特殊版本的上述pod,它只会调用该方法。或者您可以创建一个特殊版本的pod,它将启用“调用方法”设置,并跨越它的一个示例。
您可以使用CronJob按基于时间的计划运行作业。这些自动作业的运行方式与Linux或UNIX系统上的Cron任务类似。
Cron工作对于建立定期和周期性工作非常有用,例如执行备份或传送电子邮件。Cron工作也可以将个别工作排程在特定时间,例如您想要将工作排程在活动量较少的期间。
Cron作业具有局限性和特性。例如,在某些情况下,单个Cron作业可以创建多个作业。因此,作业应该是幂等的。