jm_p_op
django 대신러닝 기능- scheduler(주기적반복) 본문
사용 목적 - 외부 token을 필요할때마다 새롭게 받지 말고 바뀔 시간때마다 바꾸기
1시간마다 토큰이 리셋되므로 59분마다 새로고침하기
번외 사용방법 - 하루 한번 DB업데이트하기, 이메일 보내기 등등 사용방법은 많다
cmd: pip install APScheduler
views.py
from apscheduler.schedulers.background import BackgroundScheduler
access_token=""
def get_token():
global access_token
auth_url = 'https://accounts.spotify.com/api/token'
message = f"{client_id}:{client_pw}"
message_bytes = message.encode('ascii')
base64_bytes = base64.b64encode(message_bytes)
base64_message = base64_bytes.decode('ascii')
header = {'Authorization': f"Basic {base64_message}"}
data = {'grant_type': 'client_credentials'}
res = requests.post(auth_url, headers=header, data=data)
response_object = res.json()
access_token = response_object['access_token']
get_token()
scheduler = BackgroundScheduler()
scheduler.add_job(get_token, 'interval', minutes=59)
scheduler.start()
1.시작하자마자 get_token 돌리고 그후 시간될때마다 돌린다.
2.access_token을 전역변수로 만들어 줌으로 다른 class함수에서도 바뀌게 한다.
3. scheduler.add_job(실행함수,'조건',시간)
- 조건
- interval - 실행후 시간만큼후에 다시 돌리기
- cron - 매일 그 시간에 실행 (ex: 오후 11시 반에 실행)
'팀 > 대신러닝' 카테고리의 다른 글
django 대신러닝 기능 - json형식 dictionary_data 열기,저장 (0) | 2023.05.31 |
---|---|
django 대신러닝 기능- scheduler(2)(특정시간에 처리하기) (0) | 2023.05.31 |
django 기능 - 음성 인식 (2) | 2023.05.24 |