Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 이벤트 스케줄러

<시간/>

Python은 특정 시간에 작업을 실행할 수 있는 일반 스케줄러를 제공합니다. 우리는 schedule이라는 모듈을 사용할 것입니다. 이 모듈에서는 every 함수를 사용하여 원하는 일정을 얻습니다. 다음은 모든 기능에서 사용할 수 있는 기능입니다.

구문

Schedule.every(n).[timeframe]
Here n is the time interval.
Timeframe can be – seconds, hours, days or even name of the
Weekdays like – Sunday , Monday etc.

예시

아래 예에서 우리는 일정 모듈을 사용하여 몇 초마다 비트콘 가격을 가져오는 것을 볼 수 있습니다. 코인데스크에서 제공하는 API도 사용합니다. 이를 위해 우리는 requests 모듈을 사용할 것입니다. 응답이 지연될 때 sleep 함수가 프로그램을 계속 실행하고 API가 응답할 때까지 기다려야 하므로 time 모듈도 필요합니다.

예시

import schedule
import time
import requests
Uniform_Resource_Locator="https://api.coindesk.com/v1/bpi/currentprice.json"
data=requests.get(Uniform_Resource_Locator)
input=data.json()
def fetch_bitcoin():
   print("Getting Bitcoin Price")
   result = input['bpi']['USD']
   print(result)
def fetch_bitcoin_by_currency(x):
   print("Getting bitcoin price in: ",x)
   result=input['bpi'][x]
   print(result)
#time
schedule.every(4).seconds.do(fetch_bitcoin)
schedule.every(7).seconds.do(fetch_bitcoin_by_currency,'GBP')
schedule.every(9).seconds.do(fetch_bitcoin_by_currency,'EUR')
while True:
   schedule.run_pending()
   time.sleep(1)

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.

출력

Getting Bitcoin Price
{'code': 'USD', 'symbol': '$', 'rate': '7,069.1967', 'description': 'United States Dollar', 'rate_float': 7069.1967}
Getting bitcoin price in: GBP
{'code': 'GBP', 'symbol': '£', 'rate': '5,279.3962', 'description': 'British Pound Sterling', 'rate_float': 5279.3962}
Getting Bitcoin Price
{'code': 'USD', 'symbol': '$', 'rate': '7,069.1967', 'description': 'United States Dollar', 'rate_float': 7069.1967}
Getting bitcoin price in: EUR
{'code': 'EUR', 'symbol': '€', 'rate': '6,342.4196', 'description': 'Euro', 'rate_float': 6342.4196}
Getting Bitcoin Price
{'code': 'USD', 'symbol': '$', 'rate': '7,069.1967', 'description': 'United States Dollar', 'rate_float': 7069.1967}