Динамически запускаемые лямбда-триггеры для слабого бота - PullRequest
0 голосов
/ 04 октября 2018

В моей компании есть внутренний бот Slack для создания и отправки отчетов между отделами.В настоящее время кто-то может создать отчет и затем вручную отправить его в отдел, когда он будет готов.Оба эти действия выполняются с помощью простой лямбда-функции.Однако мы сталкиваемся с проблемами, когда люди забывают отправлять отчеты позже.

Я ищу способ, позволяющий пользователю заранее выбрать время, когда он хотел бы отправить отчет.,Я рассмотрел только динамическое создание выражения cron CloudWatch для каждого отчета на основе выбранного времени, но это не кажется очень масштабируемым - что если несколько пользователей хотят, чтобы отчет отправлялся одновременно?

Является ли что-то вроде опроса очереди SQS более устойчивым * или есть лучшее решение для обработки динамического планирования событий?

* Я бы не хотел запускать функцию Lambda каждую минуту только для опроса сообщений.

Любые предложения приветствуются!

1 Ответ

0 голосов
/ 04 октября 2018

Вот краткий обзор того, как реализовать ваше требование в Slack:

  • Добавьте функцию в свой бот Slack, чтобы пользователь мог указать дату отправки отчета.например, с Slack Dialog или выпадающим списком распространенных опций
  • Сохранение информации отчета с указанием срока отправки для отправки в базу данных
  • Выполнение пакетного прогона базы данных на регулярной основе и отправкаотчеты

Пакет может быть лямбда-функцией.И я хотел бы предположить, что вы также можете хранить постоянные данные с помощью своей лямбда-функции, например, базы данных.

Для регулярного запуска вашего пакета, например, каждые 5 минут вам потребуется планировщик CRON.Хороший, которым я пользуюсь сам, это cron-job.org .Отлично работает для запуска приложений через http-запрос, и у них есть бесплатный план.

Я бы не использовал очередь, поскольку отчеты, скорее всего, не будут в последовательном порядке для отправки.Таким образом, таблица базы данных, куда вы можете делать запросы, чтобы получить только нужные, работает намного лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...