pip install schedule
import schedule
import time
def job():
#TO DO
...
#-------------------------------
# 10μ΄μ νλ²μ© μ€ν
schedule.every(10).second.do(job)
# 10λΆμ νλ²μ© μ€ν
schedule.every(10).minutes.do(job)
# 맀 μκ° μ€ν
schedule.every().hour.do(job)
# λ§€μΌ 10:30 μ μ€ν
schedule.every().day.at("10:30").do(job)
# 맀주 μμμΌ μ€ν
schedule.every().monday.do(job)
# 맀주 μμμΌ 13:15 μ μ€ν
schedule.every().wednesday.at("13:15").do(job)
while True: # μ€μΌμ₯΄μ μ§μμ μΌλ‘ μ μ§νκΈ° μν¨
schedule.run_pending() # μ€μΌμ₯΄μ 체ν¬
time.sleep(1) # 1μ΄μ ν λ²μ©
νλ‘κ·Έλ¨ μ§μ μλ μ€ν νλ‘κ·Έλ¨μΌλ‘ λ±λ‘ν΄λμΌλ©΄ λκ² λ€β¦
β μλλ©΄ 24μκ° λλ €μ§λ μλ²μλ€κ°β¦
λ°©μ (β νλΌλ―Έν°κ° λ¬λΌμ§)
μ€μΌμ₯΄ μ’ λ₯
λ¨μΌ μν: BlockingScheduler
λ€μ μν: BackgroundScheduler
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.jobstores.base import JobLookupError
import time
def job():
print("I'm working...", "| [time] "
, str(time.localtime().tm_hour) + ":"
+ str(time.localtime().tm_min) + ":"
+ str(time.localtime().tm_sec))
def job_2():
print("Job2 μ€ν: ", "| [time] "
, str(time.localtime().tm_hour) + ":"
+ str(time.localtime().tm_min) + ":"
+ str(time.localtime().tm_sec))
# statμΌλ‘ κ°μ²΄ μμ± -> start ν΄μ£Όκ³
sched = BackgroundScheduler()
sched.start()
# add_job μ μ΄μ©ν΄ μνν κ²μ λ±λ‘
# interval - 맀 3μ΄λ§λ€ μ€ν
sched.add_job(job, 'interval', seconds=3, id="test_2")
# cron μ¬μ© - 맀 5μ΄λ§λ€ job μ€ν
sched.add_job(job, 'cron', second='*/5', id="test_1")
## : id λ κ³ μ μνλ²νΈλ‘ κ²ΉμΉλ©΄ μνλμ§ μμ΅λλ€.
## λ§μ½ κ²ΉμΉλ©΄ λ€μμ μλ¬ λ°μ
## => 'Job identifier (test_1) conflicts with an existing job'
# cron μΌλ‘ νλ κ²½μ°λ λ€μκ³Ό κ°μ΄ νλΌλ―Έν°λ₯Ό μν©μ λ°λΌ μ¬λ¬κ° λ£μ΄λ λ©λλ€.
sched.add_job(job_2, 'cron', minute="59", second='10', id="test_10")
# 맀μκ° 59λΆ 10μ΄μ μ€ννλ€λ μλ―Έ.
count = 0
while True:
print("Running main process...............")
time.sleep(1)
jobμ νλΌλ―Έν°λ₯Ό λ°μ μ€ννλ κ²½μ°
# νλΌλ―Έν°λ₯Ό λ°μμ μ€ννλ Job μΌμ΄μ€
def job(test_str, test_str2):
print("Hello: %s, %s " % (test_str, test_str2))
# νλΌλ―Έν°λ₯Ό λ£μ΄μ μ€ννλ κ²½μ°.
# λ§μ½ νλΌλ―Έν°λ₯Ό λ°λλ°λ λ£μ§ μμΌλ©΄ λ€μκ³Ό κ°μ μλ¬κ° μκΉλλ€.
# ValueError: The list of positional arguments is longer than the target callable can handle (allowed: 0, given in args: 2)
# args μ κ°μ λ°λμ λ°°μ΄λ‘ λ£μ΄μΌ ν©λλ€.
sched.add_job(job, 'cron', minute="1", second='*/5', id="test_11", args=["ν
μ€νΈ", "λ°κ°μμ"])
μκ°μ λ°λΌ μ΄λ―Έ λ±λ‘λμ΄ μλ Job μ κ±°νκ³ μΆμ κ²½μ°