如果你想运行你的python脚本,让我们说每天下午6点,最好是使用crontab条目或高级Python调度程序解决方案关于电源,内存,CPU ......消费
因此,在我看来,做一个crone工作会更好,因为我没有看到永久运行Advanced Python Scheduler的优势。
答案 0 :(得分:4)
如果满足两个条件,您应该使用cron
;
镜像这些是构建自己的解决方案的两个原因:
cron
可用的操作系统。 (如ms-windows)答案 1 :(得分:2)
从资源的角度来看,同意的cron更好。 从功能的角度来看,如果您的要求是在特定时间运行脚本或定期安排脚本,那么cronjob会更好。但如果您的要求更复杂,您应该查看Advance Python Schedular。
希望它有所帮助。
答案 2 :(得分:2)
我也同意cron
更好。但是当您想要选择解决方案时,您应该考虑具体要求。有时您可以使用Celery来执行此操作。
Celery是基于分布式消息传递的异步任务队列/作业队列。它专注于实时操作,但也支持调度。
答案 3 :(得分:0)
如果您想尝试第三个选项,请参阅simple-scheduler。
示例:
from time import sleep, ctime, time
from simple_scheduler.recurring import recurring_scheduler
def wait_10_secs(t):
wait_t_secs(10)
def wait_t_secs(t):
began_at = ctime(time())
sleep(t)
print(f"I waited {t} seconds. [From: {began_at} to {ctime(time())}]")
# the above wait_t_secs function would be called twice,
# so to differentiate between then use "job_name"
recurring_scheduler.add_job(target=wait_10_secs,
period_in_seconds=5, # period < execution time
job_name="ten",
kwargs={"t":10})
recurring_scheduler.add_job(target=wait_t_secs,
kwargs={"t":7}, # period < execution time
period_in_seconds=5,
job_name="seven")
recurring_scheduler.add_job(target=wait_t_secs,
kwargs={"t":3}, # period > execution time
period_in_seconds=5,
job_name="three")
recurring_scheduler.verbose = True # (default)
recurring_scheduler.job_summary()
recurring_scheduler.run()
recurring_scheduler.job_summary()
sleep(10)
print("Removing job with name 'ten'...")
recurring_scheduler.remove_job("ten")
sleep(10)
print("Removing job with name 'ten'...")
recurring_scheduler.remove_job("ten")
sleep(10)
print("Stopping and clearing the scheduler.\n")
recurring_scheduler.clear()