要求:在适当的时间向n个用户发送提醒。例如,用户1在上午9:10,用户2在10:50 AM,用户3在凌晨4:20等等。
Nodejs I中有一个Nodejs作业,每55分钟运行一次(即9:55、10:55、11:55)。首先,它删除所有子cron作业,然后从数据库中获取数据,并检查用户的提醒设置。基于数据库中的提醒设置,它为所有用户创建子cron作业以发送提醒。
AWS Lambda中的解决方案
我创建了lambda函数并安排了55分钟。在lambda内部,我正在做与在nodejs中执行的相同的事情,但是由于lambda的执行已经完成,子cron作业没有被执行。
我考虑了step函数,但不确定如何实现它,因为它是动态的。另外,有人建议触发SNS,但这在我的场景中也不起作用。
有人请帮助我用AWS Lambda实现这一点。
发布于 2019-11-01 15:12:10
为什么不让1 cron作业每分钟运行一次,根据数据库信息发送所有需要发送的提醒?我不明白你为什么需要嵌套的cron作业?
无论如何,您还可以使用DynamoDB的活动时间属性和触发Lambda函数的流。创建一个记录,在X处每Y发送一个提醒,X是过期时间。Lambda函数触发,当完成时,您将创建一个新的DDB记录,作为过期时间X+Y。在这种情况下,您甚至可能不需要cron作业Lambda。
发布于 2019-11-01 13:19:24
我想您可以使用aws在nodejs作业中动态创建云监视规则。
为了更好的对比,创建两个独立的函数。
阅读更多信息:Nodejs创建CloudWatch
https://stackoverflow.com/questions/58655411
复制相似问题