node.js - 当我在前台有一个 NodeJS 应用程序作为端点时,如何在后台容器内运行 cron 作业?

标签 node.js cron kubernetes dockerfile

我们遵循基于微服务的架构,我通过 helm 包将应用程序部署在 kubernetes 集群内。我有一个 Nodejs 应用程序,它从数据库查询 cron 作业,并且应该将这些作业添加到同一容器内的 crontab 文件中。

因此,当我在端口中将容器公开为 Nodejs 应用程序时,我将发出添加作业请求,这些作业将被格式化为 cron 作业类型,并且需要将这些条目添加到 crontab 并在后台执行这些作业。

这能实现吗?

如果是,我应该在什么基础镜像上构建我的 Node 应用程序?

我应该在 docker 文件中包含哪些步骤,以验证我的 cron 执行日志、运行 Node 应用程序和 cron 作业?

最佳答案

我知道您正在寻找一个作业调度程序,根据我的经验,每个容器放置多个进程并不是最好的主意,也许您可​​以使用另一种方法,使用运行该作业的额外微服务。

我建议使用议程

https://github.com/agenda/agenda

您可以创建一个议程工作线程,其中包含不同作业的代码,您唯一需要的就是发送计划作业或立即执行,通过此架构,您可以拥有多个议程,也可以作为 Node 应用程序的同一 Pod 内的边车容器。

关于node.js - 当我在前台有一个 NodeJS 应用程序作为端点时,如何在后台容器内运行 cron 作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50523582/

相关文章:

javascript - 在 node-cron 中获取下一个 cron 作业时间

mysql - C 代码无法在 cron 中运行选择查询

google-compute-engine - Kubernetes 作业是否有 'max-retries'?

proxy - Ingress Controller (Traefik) 和 Kubernetes 上的后端服务之间的安全通信

node.js - 使用 Node.js 将二进制数据推送到 Amazon S3

git - Node app和多个node模块同时开发,npm-link的使用

node.js - NodeJS - 具有路由更改的反向代理

node.js - 无法在 Electron 中显示文件夹选择对话框

php - 使用 crontab 从 bash 脚本将 php 文件作为 www-data 执行

java - OpenJDK 1.8.0_242,MaxRAMFraction 设置未反射(reflect)