热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

一次_我如何设置在流程开始后24小时触发一次AWSLambda?

篇首语:本文由编程笔记#小编为大家整理,主要介绍了我如何设置在流程开始后24小时触发一次AWSLambda?相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了我如何设置在流程开始后24小时触发一次AWS Lambda?相关的知识,希望对你有一定的参考价值。



我有以下模式enter image description here(使用AWS-IoTCore和AWS-Lambdas),该模式在某些MQTT事件上启动。在主过程结束时,标志success被保存在数据库中。此过程大约需要5分钟。我想在流程开始后的24小时内调用Lambda函数,以检查该标志是否存在于数据库中。没有步进功能的情况下,如何在Lambda函数中设置此超时或延迟?

答案

有两种可能的路径,可以“等待24小时”直到执行AWS Lambda函数。

在AWS Step Functions中使用“等待”步骤

AWS步长函数非常适合编排多步Lambda函数。有一个Wait state可以触发,然后流程可以触发另一个Lambda函数。步骤功能将跟踪每个单独的请求,您可以看到每个执行及其当前状态。听起来不错!

安排您自己的支票

使用Amazon CloudWatch Events来定期触发AWS Lambda函数。 Lambda函数可以查询数据库以查找未成功完成的进程的记录。但是,由于您的代码需要查找“不成功”的进程,因此首先需要将每个进程添加到数据库中(例如,在“ Process”功能的开头)。

替代方法:仅跟踪故障

上图中的体系结构将“成功”存储在数据库中,然后在24小时后对其进行检查。根据此图,它[[显示好像数据库的唯一目的是跟踪成功的过程。

相反,我建议:
    更改顶行以仅存储“失败的”进程及其失败的时间(假设可以检测到失败)
  • 定期触发AWS Lambda函数,它将:
    • 检查数据库
  • 检索早于24小时的失败进程
  • 将它们提交进行重新处理
  • 从数据库中删除记录,或将它们标记为“重试”,以避免将来再次检索
  • 基本上,数据库用于跟踪失败而不是成功。 “等待24小时”步骤被常规数据库检查失败的进程所代替。

    我不确定为什么系统要等待24小时再发送“成功”电子邮件,但我认为这是设计的故意部分。


  • 推荐阅读
    author-avatar
    钧广摄影__
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有