Как вы используете задания cron с помощью Elastic Beanstalk и Java?

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

  • http://blog.rotaready.com/scheduled-tasks-elastic-beanstalk-cron/
    • Это кажется слишком сложным для экземпляров с балансировкой нагрузки.
    • Он использует require('async') в Node, но что будет эквивалентом Java Spring Boot?
  • https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features-managing-env-tiers.html
    • Похоже, никакой безопасности нет. Любой в сети может получить доступ к пути / к POST и выполнить задание, вызывая атаку отказа в обслуживании.
    • в нем упоминается cron.yaml, что не имеет смысла, поскольку приложение развертывается с помощью файла WAR / ZIP в экземпляре Tomcat (Spring Boot).
    • Упоминается Amazon DynamoDB, которым мы не пользуемся. Мы используем MySQL.
    • Он не указывает, действует ли тайм-аут сброса соединения балансировщика нагрузки для этих заданий (10 с).
    • В нем упоминается «Карточка конфигурации рабочего» на странице «Конфигурация» в консоли управления средой », но на странице« Конфигурация »нет карточки« Конфигурация рабочего ».
  • Запуск задания cron в Elastic Beanstalk
    • Для Python / Django - использует cron.yaml.
  • Я думал о выделенном экземпляре EC2, но как мне разместить там последние изменения кода?

Это также может принадлежать SoftwareEngineering.StackExchange.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
565
1

Ответы 1

Это легко сделать с помощью других систем AWS.

Вы можете использовать CloudWatch для установки запланированных событий (https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html). Вы можете установить правило для установки события по установленному расписанию.

Тогда у вас есть как минимум два варианта:

  • установите событие для публикации сообщения SNS и используйте этот SNS для вызова веб-ловушки на вашем сервере. Множество примеров того, как это сделать, но вам нужно будет убедиться, что вы проверили подпись, чтобы убедиться, что веб-API вызывается из подписанного SNS. Но это будет использовать общедоступный API и может быть не тем, что вам удобно.

  • установить событие для публикации сообщения SQS. Затем установите эластичный beanstalk worker для обработки сообщения SQS или просто запустите фоновый скрипт на вашем основном сервере, который в основном находится в бесконечном цикле опроса SQS для работы.

Не уверен, насколько вы знакомы с этими системами, поэтому не уверен, будет ли понятно, о чем я говорю, но нет способа дать подробное решение, поэтому надеюсь, что этого достаточно, чтобы дать вам идеи.

Другие вопросы по теме