Микросервис для запуска задания cron в приложении весенней загрузки - PullRequest
1 голос
/ 10 апреля 2020

Вопрос по разработке приложения здесь: у меня есть приложение с загрузочной пружиной, и мне поручено разработать задание cron, которое будет выполняться каждые 1 час, собирать некоторые данные из нашей базы данных RDS и отправлять их в общий экземпляр красного смещения. Экземпляр Redshift используется инструментом аналитики режима для извлечения некоторых данных и запуска некоторых отчетов для заинтересованных людей.
Вопрос: должен ли я писать новый микросервис только для этой работы? Мы не хотим, чтобы это было частью нашего приложения, потому что эта задача довольно тяжелая и не имеет отношения к реальному приложению. Но если я напишу сервис для этого, он будет бездействовать, когда задание cron не запущено и не тратит ресурсы. Лямбда лучше для этого?

1 Ответ

0 голосов
/ 10 апреля 2020

Если вы размещены на AWS, это определенно лучшая альтернатива для запуска в безсерверной среде с заданием [запланированное]. Это значительно уменьшит ваш счет AWS и сэкономит деньги вашей компании. Если вам нужно просто сбросить эти отчеты, используйте S3. Если вам требуется интенсивный IOPS и / или доступность между несколькими зонами доступности, используйте EFS. (https://docs.aws.amazon.com/lambda/latest/dg/services-cloudwatchevents-expressions.html).

Просто создайте лямбду и запланируйте ее с CloudWatch каждый час . cloudwatch flow

Если вы размещаете Kubernetes , вы также можете создать CronJob.

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox
            args:
            - /bin/sh
            - -c
            - date; echo Hello from the Kubernetes cluster
          restartPolicy: OnFailure

Источник: k8s docs

...