scheduler
일정한 주기로 프로그램이 돌아갈 수 있게 해주는 코드
# Schedule Library imported
import schedule
import time
# Functions setup
def sudo_placement():
print("Get ready for Sudo Placement at Geeksforgeeks")
def good_luck():
print("Good Luck for Test")
def work():
print("Study and work hard")
def bedtime():
print("It is bed time go rest")
def geeks():
print("Shaurya says Geeksforgeeks")
# Task scheduling
# After every 10mins geeks() is called.
schedule.every(10).minutes.do(geeks)
# After every hour geeks() is called.
schedule.every().hour.do(geeks)
# Every day at 12am or 00:00 time bedtime() is called().
schedule.every().day.at("00:00").do(bedtime)
# After every 5 to 10mins in between run work()
schedule.every(5).to(10).minutes.do(work)
# Every monday good_luck() is called
schedule.every().monday.do(good_luck)
# Every tuesday at 18:00 sudo_placement() is called
schedule.every().tuesday.at("18:00").do(sudo_placement)
# Loop so that the scheduling task
# keeps on running all time.
while True:
# Checks whether a scheduled task
# is pending to run or not
schedule.run_pending()
time.sleep(1)
OS 모듈
주기적으로 실행할 수 있는 scheduler 를 setup 했으니 스케줄러 안에서 실행해야 할 함수를 만들고 추가적으로 함수가 실행되기 위한 요청이 있어야 했다. 파이썬 내장 모듈인 OS 모듈을 활용해서 너무 간단하게 요청을 자동화 할 수 있었다. 단 한 줄의 코드만 스케줄러 안에 넣어주면 원하는 만큼, 원하는 주기로 요청을 보낼 수 있다.
import os
import sys
os.system(f'http POST localhost:8000/orders/sell Authorization:{access_token} user_id={user.id} product_id={product_id} quantity={fake_quantity_sell} price={fake_price_sell}')