首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python apscheduler调度作业

使用python apscheduler调度作业
EN

Stack Overflow用户
提问于 2012-05-14 16:35:32
回答 1查看 1.4K关注 0票数 1

我必须连续监视一个进程,并且我使用进程ID来监视该进程。我写了一个程序,在进程停止后发送一封电子邮件,这样我就可以手动重新安排它,但我经常忘记重新安排这个过程(基本上是另一个python程序)。然后,我遇到了apscheduler模块,并使用cron style调度( http://packages.python.org/APScheduler/cronschedule.html)在进程停止后派生该进程。现在,一旦进程的PID被终止,我就能够派生该进程,但是当我使用apscheduler派生它时,我无法获得新调度的进程的进程id (PID);因此,我无法监视该进程。apscheduler中有没有一个函数来获取调度进程的进程ID?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-14 16:42:57

与其依靠APSchedule返回pid,不如让您的程序报告pid本身。守护进程通常都有pidfile,这些文件位于某个已知位置,其中只包含正在运行的进程的pid。只需将main函数封装在下面这样的内容中:

代码语言:javascript
复制
import os

try:
    with open("/tmp/myproc.pid") as pidfile:
        pidfile.write(str(os.getpid()))
    main()
finally:
    os.remove("/tmp/myproc.pid")

现在,每当您想要监视您的进程时,您可以首先检查pid文件中是否存在,如果存在,则检索该进程的pid以进行进一步监视。这样做的好处是独立于特定的cron实现,并且将来如果您想要编写更多与程序进行本地交互的程序,也会更容易。

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

https://stackoverflow.com/questions/10579907

复制
相关文章

相似问题

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