====== Batch / Scheduled / Cron Jobs ====== * 일정 시간마다 실행하는 작업 관리 시스템들 * [[linux:cron|cron]] * [[aws:batch|AWS Batch]] * [[springframework:batch|Spring Framework Batch]] * [[http://nerds.airbnb.com/introducing-chronos/|Chronos]] * [[https://azkaban.github.io/|Azkaban]] * [[ci:jenkins|Jenkins]] : CI Tool인 Jenkins를 배치 작업 처리용으로 사용할 수도 있다. 그러나 Fail Over 기능이 없어서 Master가 다운되면 다 다운된다. * [[ci:tekton|tekton]] [[kubernetes|Kubernetes k8s]] 기반 솔루션 * [[rundeck|Rundeck]] * [[https://github.com/davidmarquis/redis-scheduler|redis-scheduler]] [[nosql:redis|Redis]]를 이용하여 여러 서버간의 스케줄링 작업 동기화 실행. 배치 서버 없이 여러대의 웹서버를 스케줄 실행 서버로 사용할 경우 유용. ===== 모니터링 ===== * Batch Job scheduler 와 완전히 별도로 (**scheduler 자체가 다운 될 수 있기 때문**) 배치 잡의 실행시점과 성공 여부 모니터링 시스템이 필요하다. * [[monitoring:cronitor|Cronitor]] * [[monitoring:healthchecks|Healthchecks]] * [[https://uptimerobot.com|Cron Job Monitoring | UptimeRobot]] * [[https://cronhub.io/|Cronhub - Painless cron job scheduler & monitoring service]] * [[https://www.webgazer.io/pulse|Pulse: Cron job and scheduled task monitoring | WebGazer]] * [[https://deadmanssnitch.com/|Dead Man's Snitch — A dead simple Cron Job Monitoring service]] * [[https://www.cronalarm.com/|CronAlarm - Monitor, record, organize your cron jobs and scheduled tasks.]] * [[monitoring:deadmans_snitch|Dead Man's Snitch]] * 근본적으로 원래 역할은 아니지만 [[monitoring:grafana|Grafana]], [[logging:kibana|Kibana]] 로도 처리 가능은 함. 단, 매우 복잡함.