sách gpt4 ai đã đi

Các tiến trình nút và sao chép trên nhiều nút

In lại 作者:行者123 更新时间:2023-12-02 12:28:08 28 4
mua khóa gpt4 Nike

我有一个容器化的Node应用程序,它在DigitalOcean服务器上运行。当我更新服务器上的应用程序时,该应用程序必须关闭一小段时间。为了能够更新应用程序并避免停机,我目前正在阅读零停机时间部署/蓝绿色部署,以期在我对使用它们的能力更加有信心时将Docker Swarm和Kubernetes集成在一起。

但是,当我想象我的应用程序跨多个节点复制时,确实让我感到困惑。在我的应用程序中,用户可以定义一些规则。因此,例如,每天早上11点,我希望将电子邮件发送给Bob。

当我的应用程序启动时,它将从数据库中获取所有CronTriggers,并构建应用程序中存在的CronTrigger对象。

const { CronJob } = require('cron');

module.exports = class CronTrigger {
constructor(cronString) {
this.job = new CronJob(cronString, () => {

// Send email here

}, null, false, 'America/Toronto');
this.job.start();
}
}

但是,如果我的应用程序跨多个节点复制会怎样?这是否意味着CronTrigger将被执行与节点一样多的次数?如果我有一个由3个节点组成的群集,如何确保在上午11点时,只有一封电子邮件发送给Bob而不是3个人?

Docker Swarm,Kubernetes甚至AWS EC2等技术如何处理此类问题?

1 Câu trả lời

是的,您可以通过将实际的cron执行移至仅运行一个副本的另一个守护程序来解决此问题,或者使用某种形式的领导者选举系统,以便在任何给定时间仅运行一个副本。

关于node.js - Node 进程和跨多个 Node 的复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61465510/

28 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com