当前位置: 首页 > 面试题库 >

在Python 3中安排重复事件

红明德
2023-03-14
问题内容

我正在尝试安排一个重复事件在Python 3中每分钟运行一次。

我看过课堂,sched.scheduler但是我想知道是否还有另一种方法可以做到。我听说有人提到我可以为此使用多个线程,我不介意这样做。

我基本上是在请求一些JSON,然后解析它。它的价值会随着时间而变化。

要使用它,sched.scheduler我必须创建一个循环以请求它安排偶数运行一小时:

scheduler = sched.scheduler(time.time, time.sleep)

# Schedule the event. THIS IS UGLY!
for i in range(60):
    scheduler.enter(3600 * i, 1, query_rate_limit, ())

scheduler.run()

还有什么其他方法可以做到这一点?


问题答案:

您可以使用threading.Timer,但是它也可以安排一次性事件,类似于.enter调度程序对象的方法。

将一次性调度程序转换为周期性调度程序的正常模式(使用任何语言)是使每个事件以指定的时间间隔重新进行调度。例如,使用时sched,我不会像您正在使用的那样使用循环,而是像这样:

def periodic(scheduler, interval, action, actionargs=()):
    scheduler.enter(interval, 1, periodic,
                    (scheduler, interval, action, actionargs))
    action(*actionargs)

并通过电话发起整个“永久定期计划”

periodic(scheduler, 3600, query_rate_limit)

或者,我可以使用threading.Timer代替scheduler.enter,但是模式非常相似。

如果您需要更精细的变体(例如,在给定时间或在某些条件下停止定期重新计划),那么添加一些额外的参数就不太难了。



 类似资料:
  • 我正试图升级pycairo软件包,但得到以下错误: 问题出在哪里?

  • 本文向大家介绍Python3删除排序数组中重复项的方法分析,包括了Python3删除排序数组中重复项的方法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python3删除排序数组中重复项的方法。分享给大家供大家参考,具体如下: 给定一个排序数组,你需要在[原地]删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在[原地]修改输入数组并

  • 我的系统是Windows10x64 现在我想安装pyicu,但遇到了这样的问题 使用缓存的PyICU-1.9。7.焦油。gz从命令python安装程序完成输出。py egg_info:Traceback(最后一次调用):文件“C:\Users\ANHVU\AppData\Local\Temp\pip-build-v5fb9ri4\pyicu\setup.py”,第12行,在ICU_VERSION=

  • 我对编程有点陌生,这是我的第一个项目之一,一个数据科学项目。 我正在使用PyCharm,我需要安装Numpy和熊猫(可能还有很多其他的)。 但是我无法下载任何软件包。 我尝试了不同版本的numpy和pandas,尝试了终端,并尝试使用Virtualenv和Conda环境。 如果您有任何建议,我很乐意听到。

  • 问题内容: 这个问题已经在这里有了答案 : 具有唯一值的排列 (19个答案) 7年前关闭。 我正在寻找列表的唯一排列,x = [“ $ 5”,“ $ 10”,“ $ 10”,“ TAX”,“ $ 5”,“ 20%”,“ BOGO”,“ BOGO”,“ TAX “](9人一组) 我目前正在做的是 但是,这需要很长时间才能运行,我想知道是否有人可以为我提供更有效的解决方案。 问题答案: 这将花费很长时

  • 我正在尝试将库连接到我在Gradle的项目: 当我单击“立即同步”时,项目正在生成,没有错误,但当我运行项目时,IDE显示错误: 执行任务:[: app: assembleDebug] 按需配置是一个孵化功能。: app: preBuild: app: compileDebugNdk UP-TO-DATE: app: preDebugBuild: app: check DebugManifest: