代码之家  ›  专栏  ›  技术社区  ›  Charlie Fish

AWS Lambda计划的一次性任务

  •  2
  • Charlie Fish  · 技术社区  · 7 年前

    系统Im设想将基本上有需要发送的事件,无论是在接收/创建事件时,在特定时间,还是作为一个重复的操作。我希望尽可能多地使用AWS,因为它具有可伸缩性。

    我最初的想法是让AWS SQS队列来发送事件。然后我会有一个DynamoDB表用于将来的事件。Id还有两个AWS Lambda函数,一个设置每隔几分钟在cron作业上运行一次,从DynamoDB表中获取计划在未来15分钟左右的事件,并将它们放入AWS SQS队列中,并使用一个消息计时器设置延迟消息在给定时间内可见。第二个Lambda函数将被设置,并有一个触发器从AWS SQS队列运行。此函数将负责实际发送事件。

    从那里我可以添加事件到SQS队列(有或没有消息计时器),如果它需要在未来15分钟内发送出去。或者把它加到DynamoDB表中,如果它将来需要发送(超过15分钟)。

    我刚发现最大的问题是 AWS SQS FIFO queues doesn’t support Message Timers on individual messages

    我还研究了AWS Lambda cron作业,虽然您可以每隔5分钟安排一次调用,但我不认为这是我所要寻找的,因为我更希望在未来安排一次调用,并使其具有可伸缩性。所以我想这不是我要找的。

    关于如何实现这一点,有什么想法吗,因为它看起来不像Amazon SQS消息计时器会为我所做的工作工作?

    1 回复  |  直到 7 年前
        1
  •  -2
  •   hin522    7 年前

    你考虑过阶跃函数吗?你可以创建一个 wait state 在调用lambda之前。