我很难使用python-守护进程1.6和APScheduler来管理任务列表。
(调度程序需要以特定的时间-秒分辨率定期运行它们)
工作(直到按下Ctrl+C),
from apscheduler.scheduler import Scheduler
import logging
import signal
def job_function():
print "Hello World"
def init_schedule():
logging.basicConfig(level=logging.DEBUG)
sched = Scheduler()
# Start the scheduler
sched.start()
return sched
def schedule_job(sched, function, periodicity, start_time):
sched.add_interval_job(job_function, seconds=periodicity, start_date=start_time)
if __name__ == "__main__":
sched = init_schedule()
schedule_job(sched, job_function, 120, '2011-10-06 12:30:09')
schedule_job(sched, job_function, 120, '2011-10-06 12:31:03')
# APSScheduler.Scheduler only works until the main thread exits
signal.pause()
# Or
#time.sleep(300)示例输出:
具有0核心线程和20个最大线程的INFO:apscheduler.threadpool:Started线程池,INFO:apscheduler.scheduler:Scheduler为作业启动DEBUG:apscheduler.scheduler:Looking以运行DEBUG:apscheduler.scheduler:No作业;等待作业添加INFO:apscheduler.scheduler:Added作业"job_function (触发器: interval0:00:30,下一次运行于: 2011-10-06 18:30:39)“到作业存储”默认的“”INFO:apscheduler.scheduler:Added作业"job_function (触发器: interval0:00:30,下一次运行在: 2011-10-06 18:30:33 )到作业存储“默认”DEBUG:apscheduler.scheduler:Looking以运行DEBUG:apscheduler.scheduler:Next唤醒是在2011-10-06 18:30:33(在10.441128秒内)
带有python的,输出是空的.为什么DaemonContext没有正确地生成进程?
编辑-工作
在阅读python源代码之后,我将stdout和stderr添加到DaemonContext中,最终能够知道发生了什么。
def job_function():
print "Hello World"
print >> test_log, "Hello World"
def init_schedule():
logging.basicConfig(level=logging.DEBUG)
sched = Scheduler()
sched.start()
return sched
def schedule_job(sched, function, periodicity, start_time):
sched.add_interval_job(job_function, seconds=periodicity, start_date=start_time)
if __name__ == "__main__":
test_log = open('daemon.log', 'w')
daemon.DaemonContext.files_preserve = [test_log]
try:
with daemon.DaemonContext():
from datetime import datetime
from apscheduler.scheduler import Scheduler
import signal
logging.basicConfig(level=logging.DEBUG)
sched = init_schedule()
schedule_job(sched, job_function, 120, '2011-10-06 12:30:09')
schedule_job(sched, job_function, 120, '2011-10-06 12:31:03')
signal.pause()
except Exception, e:
print e发布于 2011-10-06 16:54:25
我对python不太了解,但是没有定义job_function()中的job_function()。在引用init_schedule()的Schedule中也会出现同样的问题。
https://stackoverflow.com/questions/7677441
复制相似问题