首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python选项- APScheduler &python

python选项- APScheduler &python
EN

Stack Overflow用户
提问于 2011-10-06 16:25:16
回答 1查看 5.1K关注 0票数 1

我很难使用python-守护进程1.6和APScheduler来管理任务列表。

(调度程序需要以特定的时间-秒分辨率定期运行它们)

工作(直到按下Ctrl+C),

代码语言:javascript
复制
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中,最终能够知道发生了什么。

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2011-10-06 16:54:25

我对python不太了解,但是没有定义job_function()中的job_function()。在引用init_schedule()Schedule中也会出现同样的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7677441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档