Удалить эластичный бобовый стебель Cron - PullRequest
0 голосов
/ 01 июня 2019

Я использую cron.yaml из эластичного бобового стебля для запуска периодических задач.Однако, это прекрасно работает, если я заново разверну свой код, cron будет запущен дважды.Снова разверните, и задание будет запущено 3 раза и т. Д. Как удалить существующие cron, чтобы при развертывании был только один экземпляр cron?

1 Ответ

0 голосов
/ 03 июня 2019

Вместо использования cron.yaml, который добавляет задание cron ко всем развертываемым экземплярам EB, вы можете использовать .ebextensions, чтобы определить команды, которые выполняются в каждом из ваших экземпляров, и квалифицировать эти команды для запуска только в одном экземпляре, используяleader_only: true.

Например,

.ebextensions / 01_setup_cron.config

container_commands:
    01_some_cron_job:
        command: "cat .ebextensions/your_cron.txt > /etc/cron.d/your_Cron && chmod 644 /etc/cron.d/your_cron"
        leader_only: true

.ebextensions / your_cron.txt

* * * * * root /usr/bin/do-something.sh

# Don't forget to put a blank new line at the end of the cron - cron won't work without it

Это скопирует файл cron в /etc/cron.d/ только для одного экземпляра (экземпляр "лидера") и будет означать, что ваш cron запускается только один раз.

...