簡體   English   中英

多服務器設置中計划/cron 任務的 AWS 和 NodeJS 架構

[英]AWS and NodeJS architecture for a scheduled/cron task in multi server setup

我正在使用 AWS 服務部署我的應用程序,該應用程序當前在運行我的 NodeJS 服務器的 2 個實例的應用程序負載均衡器上設置了生產站點。

我目前擔心的是,如果我只是設置一個node-cron來在凌晨 5:00 觸發任務,它會為我啟動的每個服務器執行此操作。

我需要實施一個 email 交付系統,它會在凌晨 5:00 查詢我為生成自定義電子郵件而創建的數據庫表(需要遍歷每個人;s 記錄,它有一個獨特的數組,有助於為每個用戶構建項目列表). 然后我將 object 發送到 AWS SES。

你有哪些方法可以做到這一點?

  • **目前根據我的閱讀,我正在尋找兩個選項:
  • **

在一個集群中設置一個 node-cron 子進程(但如果我有自動縮放,這不會創建重復的 node-cron 任務),但這可能需要 Redis 並跨服務器跟蹤進程

或者

設置一個 EventBridge API,它會觸發一個api.mybackendserver.com/send-email-event ,然后我會在其中執行我的邏輯。 (這似乎是更簡單的方法,缺點是潛在的 CPU/RAM 峰值,這很好,因為我是區域性的,並且會在非高峰時段執行此操作)。

EventBridge 絕對是一種通過 CRON 達到 go 的方法。 如果您擔心使用高峰,您可以使用 CRON 調用 Lambda function。這會將每個作業的事件推送到 SQS。 這些將由 EC2 實例輪詢。

其他方法是安排任務以在 cron 事件發生之前增加實例數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM