我正在尋找一個事件調度程序,如Java中的quartz,用於我的python項目。Python:Event Schedular like quartz
請建議我一些很好的調度在Python
我的要求
1)一些間隔
感謝後,發送電子郵件或短信給用戶!
我正在尋找一個事件調度程序,如Java中的quartz,用於我的python項目。Python:Event Schedular like quartz
請建議我一些很好的調度在Python
我的要求
1)一些間隔
感謝後,發送電子郵件或短信給用戶!
celery
可能是任務矯枉過正以及quartz
:
@celery.task
def sendmail(from_addr, to_addrs, msg):
"send mail here"
sendmail.apply_async(args, countdown=n) # send email in `n` seconds
也許APScheduler是你想要的。
這是例子:
from apscheduler.scheduler import Scheduler
sched = Scheduler()
@sched.interval_schedule(hours=3)
def some_job():
print "Decorated job"
sched.configure(options_from_ini_file)
sched.start()
一個平凡的解決辦法是:
from aqcron import At
from time import sleep
from datetime import datetime
# Event scheduling
event_1 = At(second=5)
event_2 = At(second=[0,20,40])
while True:
now = datetime.now()
# Event check
if now in event_1: print "event_1"
if now in event_2: print "event_2"
sleep(1)
和類aqcron.At是:
# aqcron.py
class At(object):
def __init__(self, year=None, month=None,
day=None, weekday=None,
hour=None, minute=None,
second=None):
loc = locals()
loc.pop("self")
self.at = dict((k, v) for k, v in loc.iteritems() if v != None)
def __contains__(self, now):
for k in self.at.keys():
try:
if not getattr(now, k) in self.at[k]: return False
except TypeError:
if self.at[k] != getattr(now, k): return False
return True
@Sebastian發送郵件不僅我的任務可能是發送短信 – user1614526