[python] 실시간 요청 자동화 & scheduler

nooyji·2021년 9월 30일
0

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}')

원문 : https://velog.io/@wltjs10645/Python-%EC%8B%A4%EC%8B%9C%EA%B0%84-%EC%9A%94%EC%B2%AD-%EC%9E%90%EB%8F%99%ED%99%94-scheduler

0개의 댓글