[ruby-on-rails] Heroku에서 '매주'일을 어떻게 스케줄 할 수 있습니까?


Answers

쉘 코드만을 사용하는 대체 옵션. 매주 Heroku 스케줄러를 설정하고 date 명령과 비교하십시오.

# setting the schedular to run hourly at *:30 is equivalent to the 
# crondate: 30 8 * * 1
if [ "$(date +%H)" = 08 ] && [ "$(date +%d)" = 01 ]; then YOUR_COMMAND ; fi 

이 코드를 사용하여 로컬 시간대에서 cron을 모방했습니다.

nz_hour="$(TZ=NZ date +%H)" ; nz_day="$(TZ=NZ date +%d)" ; if [ "$nz_hour" = 08 ] && [ "$nz_day" = 01 ]; then YOUR_COMMAND ; fi 
Question

Heroku 스케줄러 애드온을 사용하여 일상적인 작업을 성공적으로 수행하는 Rails 앱을 Heroku에 배포했습니다.

이제는 주간 작업 을 원하지만 스케줄러 추가 기능으로는 매주 옵션을 사용할 수 없습니다.

내가 어떻게 이것을 달성 할 수 있는지에 대한 제안 :

  • 과거에 rufus-scheduler를 사용해 보았지만 문제가 발생하여 옵션이 아닙니다. 자세한 내용은 here 를 참조 here .
  • 나는 매일의 직업에서 현재 날짜를 확인하는 과정에서 뭔가를 생각하고 있습니다. 누구든지 그것을 시도하고 의견이 있거나 접근 방식에 대한 문제점을 알고 있습니까?
  • 다른 아이디어가 많이 감사합니다.



여기서 논한 바와 같이 Rob의 위 논리를 사용하여 요일, 월 1 회, 특정 날짜별로 세분화 된 bash 스크립트를 작성합니다.

매주 월요일에 작업 실행 :

if [ "$(date +%u)" = 1 ]; then MY_COMMAND; fi

한 달에 1 일마다 작업 실행 :

if [ "$(date +%d)" = 01 ]; then MY_COMMAND; fi

매년 12 월 24 일에 직장을 구할 수도 있습니다.

if [ "$(date +%m)" = 12 ] && [ "$(date +%d)" = 24 ]; then MY_COMMAND; fi



Links