首页 文章

Slack bot的动态调度Lambda触发器

提问于
浏览
1

我的公司有一个内部Slack机器人,用于在部门之间创建和发送报告 . 目前,有人可以创建报告,然后在他们准备好时手动将其发送给部门 . 这两个操作都是通过简单的Lambda函数处理的 . 但是,我们遇到了人们忘记稍后发送报告的问题 .

我正在寻找一种方法,允许用户预先选择他们希望发送报告的时间 . 我已经考虑过根据所选时间为每个报表动态创建一个CloudWatch cron表达式,但这似乎不具备可扩展性 - 如果多个用户希望同时发送报告会怎么样?

像轮询SQS队列更具可持续性*还是有更好的解决方案来处理事件的动态调度?

*我不想每分钟运行Lambda函数只是为了查询消息 .

任何建议都非常感谢!

1 回答

  • 0

    以下是如何使用Slack实现您的需求的大致草图:

    • 向Slack机器人添加功能,以便用户输入发送报告的截止日期 . 例如使用Slack对话框或下拉常用选项列表

    • 将报告信息存储在发送数据库的截止日期

    • 定期批量运行数据库并发送到期报告

    批处理可以是lambda函数 . 我假设您还可以使用lambda函数存储持久数据,例如:数据库 .

    让您的批次定期运行,例如每隔5分钟,您将需要一个CRON调度程序 . 我自己使用的一个好的是cron-job.org . 适用于通过http请求触发应用程序,他们有一个免费的计划 .

    我不会使用队列,因为报告很可能不会按顺序发送 . 所以一个数据库表,在那里你可以查询只能得到应有的更好 .

相关问题