Gem 설정이 있는 Cron 작업 — Ruby On Rails
안녕하세요 여러분!. 이 게시물에서는 Ruby on Rails 애플리케이션에서 cron 작업을 사용하는 방법을 보여주는 간단한 가이드를 공유하고 싶습니다.
크론 직업이 무엇인가요?
크론 작업은 특정 시간(분, 일, 주 또는 월)에 실행되도록 예약된 프로세스입니다. Unix 시스템에서는 cron 도구를 사용하여 이러한 유형의 프로세스를 실행하고 관리할 수 있습니다. cron 도구를 실행할 프로세스의 정보는 crontab이라는 파일에 저장됩니다.
크론 작업 사용의 예는 다음과 같습니다.
1단계: gem( https://github.com/javan/whenever )을 설치할 때마다 설치합니다.
# Cronjobs
gem 'whenever', require: false
2단계:프로젝트로 이동하여 실행
cd /my-great-project
bundle exec wheneverize .
schedule.rb에 로그 파일 경로 추가
# schedule.rb
set :output, {:error => “log/cron_error_log.log”, :standard => “log/cron_log.log”}
3단계: 레이크 태스크 생성
touch lib/tasks/first_sample_task.rake
우리의 작업에서 우리는 단순히 메시지를 인쇄할 것입니다.
# lib/tasks/first_sample_task.rake
desc 'First Whenever rake task'
task first_sample_task: :environment do
Rails.logger.info "First Sample Task"
end
Rails 애플리케이션의 rake 작업을 보려면 다음 명령을 사용할 수 있습니다.
# See all tasks
bundle exec rake --tasks
4단계: 일정 파일에 추가
크론 작업의 구조는 다음과 같습니다.
.--------------- minute (0-59)
| .------------ hour (0-23)
| | .--------- day of month (1-31)
| | | .------ month (1-12)
| | | | .--- day of week (0-6) (sunday=0 or 7)
| | | | |
* * * * * command to execute
15분마다 실행되도록 크론 작업을 정의하는 방법의 예
# schedule.rb
every '*/15 * * * *' do
rake 'first_sample_task'
end
For Reference
https://crontab.guru/#/15_*_
5단계: crontab 업데이트
whenever --update-crontab
# crontab file
*/5 * * * * /bin/bash -l -c 'cd OUR_PROJECT_PATH && RAILS_ENV=production bundle exec rake first_sample_task - silent >> log/cron_log.log 2>> log/cron_error_log.log'
로그를 보면 다음을 볼 수 있습니다.
# log/cron_log.log
I, [2022-05-04T18:05:02.890007 #98613] INFO -- : First Sample Task
I, [2022-05-04T18:20:02.944687 #98649] INFO -- : First Sample Task
6 단계: Crontab 중요 명령
# get crontab list
crontab -l
# delete all crontab
crontab -r
# edit crontab
crontab -e
7단계:배포를 위해 capfile 및 deploy.rb의 파일을 가져올 때마다 필요합니다.
# capfile
require 'whenever/capistrano'
# deploy.rb
require 'whenever'
require 'whenever/capistrano'
이 가이드가 귀하와 귀하의 팀에 도움이 되었다면 다른 사람들과 공유하십시오!
Reference
이 문제에 관하여(Gem 설정이 있는 Cron 작업 — Ruby On Rails), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kanani_nirav/cron-job-with-whenever-gem-setup-ruby-on-rails-4nli텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)