我在Go中制作了一个简单的计划程序,该计划程序可以长时间运行并使用通道,当股票行情通道准备就绪时,我会轮询数据库以查找要发送的电子邮件,该电子邮件会将电子邮件发送到发送通道准备就绪后,电子邮件将发送出去。目前,滴答间隔是每10分钟一次。启动后,此调度程序将连接到pg数据库。
示例:
for {
select {
case <-s.ticker.C:
// query db, sends each email to s.send channel. Could just send them
// without the channel though.
go poll()
case email := s.send:
send(email) // sends the email via some email service
}
}
我的问题是,使用一次连接到数据库的Go程序,或者每10分钟将Lambda函数设置为cronjob,是否会更安全/有效?我从未使用过Lambda,但是我相信每次运行时都会有一个新的数据库连接,这也涉及到获取凭据。
从成本角度考虑,这并不重要,我只是好奇哪种会更安全/更有效。任何信息被理解!