django-crontab을 실행하기 위해 다음과 같은 과정을 거쳤다.
pip install django-crontab
INSTALLED_APPS = (
'django_crontab',
...
)
def cron_test():
print('테스트중')
4.settings.py 에 cronjob 추가
CRONJOBS = [
('*/1 * * * *', 'api.appName.cron.cron_test', '>> BASE_DIR+'/cron.log'),
]
1분마다 실행하는 것으로 시간 설정한 예이다.
사실 여기서 자꾸 헤맸는데, 로그파일이 생성되지 않아 크론 작업이 돌아가는지 알수가없었다 ㅠㅠ
여기에선 두가지 문제가 있는데,
첫번째로는 MacOS를 사용하는 경우 크론에게 접근 권한을 부여해야한다.
보안 및 개인정보 보호 > 전체 디스크 접근권한 > cront의 접근 권한을 체크한다.
많은 곳에서 이렇게 진행하면 된다는데 나는 체크 가능한 목록중에 cron이 없어 애를 먹었다,
이 경우
- 플러스 버튼을 누른다.
- command+shift+G 를 누른다.
- 검색창에 /usr/sbin/cron 를 입력한다.
- cron을 선책하고 접근권한 체크를 한다.
CRONJOBS = [
('*/1 * * * *', 'api.appName.cron.cron_test', '>> BASE_DIR+'/cron.log'),
]
여기에 문제가 있었다.
결국 root 의 문제였으니 앞에 BASE_DIR을 추가해주니 폴더내에 잘 생성되었따.