列出由 apscheduler 安排的 cron 作业
List the cron jobs scheduled by apscheduler
我在脚本中使用 Advanced Python Scheduler 模块为每个月的最后一天安排作业。我正在 运行将这个 python 脚本作为 CentOS 机器中的 systemd
脚本。
from apscheduler.schedulers.blocking import BlockingScheduler
if __name__ == '__main__':
sched = BlockingScheduler()
sched.add_job(lambda: my_aggregation_function(url_list, 'monthly'), 'cron', day='last')
while True:
sched.start()
我通过添加这些更改重新启动了我的脚本 (systemd),脚本现在是 运行 计划的作业。
我的问题是如何确认我的 python 脚本中的作业是否按照我的配置安排为 运行。我做了一个 cron 列表,如下所示,但找不到任何已安排的列表。
crontab -u root -l
也用于交互式 shell、
上的测试作业
# python
Python 2.7.5 (default, Nov 6 2016, 00:28:07)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from apscheduler.schedulers.blocking import BlockingScheduler
>>> sched = BlockingScheduler()
>>> def job_function():
... print "Hello World"
...
>>> sched.add_job(job_function, 'cron', day='last')
<Job (id=c4b232a453dd4b5dbea5ef413d7a8c4d name=job_function)>
>>> sched.start()
如何查看提及的职位 ID (c4b232a453dd4b5dbea5ef413d7a8c4d
) 的详细信息?可以这样看吗
我还查找了另一个模块 python-crontab 用于管理 cron
作业。这也没有列出工作
>>> from crontab import CronTab
>>> my_cron = CronTab(user='root')
>>> for job in my_cron:
... print job
...
我认为这里存在严重的误解。您似乎认为 APScheduler 以某种方式管理系统的 cron 作业。它不是。它是一个进程内调度程序,恰好有一个类似 cron 的触发器来调度作业。 APScheduler 与任何 cron 守护进程或 crontabs 没有任何关系。
正在更新评论中的实际答案。 API在apscheduler
官方文档
中定义
scheduler.get_jobs()
我在脚本中使用 Advanced Python Scheduler 模块为每个月的最后一天安排作业。我正在 运行将这个 python 脚本作为 CentOS 机器中的 systemd
脚本。
from apscheduler.schedulers.blocking import BlockingScheduler
if __name__ == '__main__':
sched = BlockingScheduler()
sched.add_job(lambda: my_aggregation_function(url_list, 'monthly'), 'cron', day='last')
while True:
sched.start()
我通过添加这些更改重新启动了我的脚本 (systemd),脚本现在是 运行 计划的作业。
我的问题是如何确认我的 python 脚本中的作业是否按照我的配置安排为 运行。我做了一个 cron 列表,如下所示,但找不到任何已安排的列表。
crontab -u root -l
也用于交互式 shell、
上的测试作业# python
Python 2.7.5 (default, Nov 6 2016, 00:28:07)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from apscheduler.schedulers.blocking import BlockingScheduler
>>> sched = BlockingScheduler()
>>> def job_function():
... print "Hello World"
...
>>> sched.add_job(job_function, 'cron', day='last')
<Job (id=c4b232a453dd4b5dbea5ef413d7a8c4d name=job_function)>
>>> sched.start()
如何查看提及的职位 ID (c4b232a453dd4b5dbea5ef413d7a8c4d
) 的详细信息?可以这样看吗
我还查找了另一个模块 python-crontab 用于管理 cron
作业。这也没有列出工作
>>> from crontab import CronTab
>>> my_cron = CronTab(user='root')
>>> for job in my_cron:
... print job
...
我认为这里存在严重的误解。您似乎认为 APScheduler 以某种方式管理系统的 cron 作业。它不是。它是一个进程内调度程序,恰好有一个类似 cron 的触发器来调度作业。 APScheduler 与任何 cron 守护进程或 crontabs 没有任何关系。
正在更新评论中的实际答案。 API在apscheduler
官方文档
scheduler.get_jobs()