[英]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.