Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 容器中的CRON作业_Docker_Kubernetes_Cron_Amazon Ecs - Fatal编程技术网

Docker 容器中的CRON作业

Docker 容器中的CRON作业,docker,kubernetes,cron,amazon-ecs,Docker,Kubernetes,Cron,Amazon Ecs,我有一个我编写的服务器,它允许我们启动处理和/或管理CRON作业,以便按照不同的时间表进行处理 如果我以水平可伸缩的方式运行容器,如何从崩溃的容器中恢复,或通知新容器CRON作业正在由另一个容器处理 我应该将cron作业定义及其状态存储在数据库中吗?如果是,如果容器崩溃并且没有机会将状态写入数据库,我如何记录状态 我是否应该将容器定义分解为单独的容器,并且只运行一个容器?为什么您认为您需要做一些不同的事情,仅仅因为您已经虚拟化了服务器 调度可能处于/etc/cron.d状态,并通过/run/中的

我有一个我编写的服务器,它允许我们启动处理和/或管理CRON作业,以便按照不同的时间表进行处理

如果我以水平可伸缩的方式运行容器,如何从崩溃的容器中恢复,或通知新容器CRON作业正在由另一个容器处理

我应该将cron作业定义及其状态存储在数据库中吗?如果是,如果容器崩溃并且没有机会将状态写入数据库,我如何记录状态


我是否应该将容器定义分解为单独的容器,并且只运行一个容器?

为什么您认为您需要做一些不同的事情,仅仅因为您已经虚拟化了服务器

调度可能处于/etc/cron.d状态,并通过/run/中的pid文件运行。只需将此目录与需要它的容器共享即可。如果几个操作相互依赖,那么这些机制应该是基于事务的,就像正常的cronjob一样

更重要的是,如何编排容器

我有一个cronjob etc容器,它在正确的时间为每个作业启动一个新的容器。当容器的作业处于非活动状态时,不需要运行容器


如果作业少于1000个,那么将调度/启动器容器上的附加信息存储在sqlite3文件中就足够了。

为什么您认为您需要做一些不同的事情,仅仅因为您已经虚拟化了服务器

调度可能处于/etc/cron.d状态,并通过/run/中的pid文件运行。只需将此目录与需要它的容器共享即可。如果几个操作相互依赖,那么这些机制应该是基于事务的,就像正常的cronjob一样

更重要的是,如何编排容器

我有一个cronjob etc容器,它在正确的时间为每个作业启动一个新的容器。当容器的作业处于非活动状态时,不需要运行容器


如果作业少于1000个,则在sqlite3文件中存储调度/启动程序容器的附加信息就足够了。

如果希望应用程序代码是无状态的,则需要将其存储在数据库中,以适应容器崩溃

但是,我认为您在问,如果容器崩溃,其他容器将如何拾取并重试失败的cron作业。您现在正在考虑设计一个分布式作业调度器。滚动您自己的是一项大量的工作,并且已经有了解决方案


谢天谢地,您已经运行了一个分布式作业调度程序,Kubernetes!您可以利用Kubernetes特性。如果您希望,您的应用程序可以创建CronJob对象,并将其余的留给调度程序。

如果您希望您的应用程序代码是无状态的,那么是的,您需要将其存储在数据库中,以适应容器崩溃

但是,我认为您在问,如果容器崩溃,其他容器将如何拾取并重试失败的cron作业。您现在正在考虑设计一个分布式作业调度器。滚动您自己的是一项大量的工作,并且已经有了解决方案


谢天谢地,您已经运行了一个分布式作业调度程序,Kubernetes!您可以利用Kubernetes特性。如果您愿意,您的应用程序可以创建CronJob对象,其余的留给调度程序。

谢谢您的输入。听起来你建议使用一个单独的容器来管理作业,如果我担心失去作业,那么我应该将它们的定义存储到数据库中。我知道你可以在docker中映射卷,但不退出。知道/确定你建议与多个容器共享文件系统的部分时是什么意思?对于更多的上下文,我对编排是相当陌生的。我只有AWS ECS的经验。@JonVogel作业本身应该在单独的容器中运行,是的。有关信息,您可以使用数据库或与多个容器共享一个卷。我将不得不对与多个容器共享的卷进行文档阅读,我不知道这一点。不过,我可能会坚持AWS Cloudwatch活动。谢谢您的意见。听起来你建议使用一个单独的容器来管理作业,如果我担心失去作业,那么我应该将它们的定义存储到数据库中。我知道你可以在docker中映射卷,但不退出。知道/确定你建议与多个容器共享文件系统的部分时是什么意思?对于更多的上下文,我对编排是相当陌生的。我只有AWS ECS的经验。@JonVogel作业本身应该在单独的容器中运行,是的。有关信息,您可以使用数据库或与多个容器共享一个卷。我将不得不对与多个容器共享的卷进行文档阅读,我不知道这一点。不过,我可能会坚持使用AWS Cloudwatch事件。你知道AWS ECS是否有类似的功能吗?啊,我认为问题是关于Kubernetes的,因为标签。我
我对ECS一无所知,但它看起来有这个功能:谢谢。我不知道有很多很棒的开源分布式cron作业项目。看来我还有更多的库伯内特要学。我可能会同时参加Cloudwatch活动。你知道AWS ECS是否也有类似的功能吗?啊,我假设问题是关于Kubernetes的,因为标签。我对ECS一无所知,但它看起来有这个功能:谢谢。我不知道有很多很棒的开源分布式cron作业项目。看来我还有更多的库伯内特要学。同时,我可能会参加Cloudwatch活动。