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

每隔X分钟运行一次函数-Python

宋凌龙
2023-03-14
问题内容

我正在使用Python和PyGTK。我对运行某个功能感兴趣,该功能每隔几分钟从串行端口获取数据并保存一次。

当前,我正在时间库中使用sleep()函数。为了能够进行处理,我将系统设置如下:

import time
waittime = 300 # 5 minutes
while(1):
    time1 = time.time()
    readserial() # Read data from serial port
    processing() # Do stuff with serial data, including dumping it to a file
    time2 = time.time()
    processingtime = time2 - time1
    sleeptime = waittime - processingtime
    time.sleep(sleeptime)

这种设置使我从串口读取数据的间隔为5分钟。我的问题是我希望能够让我的readserial()函数每隔5分钟暂停一次,并且能够一直执行操作,而不是使用time.sleep()函数。

关于如何解决这个问题有什么建议吗?多线程?会打扰吗 请记住,我正在使用python

谢谢。


问题答案:

不要在睡眠中使用这样的循环,它将阻止gtk处理任何UI事件,而是使用gtk计时器,例如

def my_timer(*args):
    return True# do ur work here, but not for long

gtk.timeout_add(60*1000, my_timer) # call every min


 类似资料:
  • 问题内容: 我正在cronjob中运行PHP脚本,我想每5分钟发送一封电子邮件 我当前的(crontab)cronjob: cronmail.php如下: 但是我没有在30分钟内收到此配置的电子邮件。 问题答案: 在文件中,这些字段是: 每小时的分钟。 一天中的小时。 一个月中的某天。 一年中的月份。 一周中的天。 所以: 表示每小时10分钟执行一次。 如果您希望每五分钟使用一次,请使用以下任一方

  • 问题内容: 如何每分钟运行一个函数?在JavaScript中,我可以做类似的事情,在Swift中是否存在类似的事情? 想要的输出: 你好世界每分钟一次… 问题答案: 记住要导入基金会。 斯威夫特4:

  • 问题内容: 我想尝试通过以下方式使用@Schedule批注: 根据日志,CronService运行良好,但是计划的任务“ runsEveryMinute”不起作用。 使用EJB计划任务如何工作? 问题答案: 按照该Javadoc中的注释,默认值是: 除小时,分钟和秒外的所有字段;和 默认情况下为小时,分钟和秒。 通过将小时值保留为默认值,它要求计时器在午夜之后每分钟运行一小时(即00:00、00:

  • 问题内容: 我有一个ajax javascript方法,可从页面等中提取数据。 我希望此过程按一定的时间间隔运行,例如每分钟。但是我不希望它永远循环,所以最多可以循环3次。 实现此目的的最佳方法是什么? 问题答案: 像这样:

  • 问题内容: 和别的: 两者都不起作用(强制关闭应用程序)。我可以尝试其他哪些选择? 问题答案: 您的代码失败,因为您在后台线程中执行睡眠,但是显示数据必须在UI线程中执行。 您必须从runOnUiThread(Runnable)运行displayData或定义处理程序并将消息发送给它。 例如:

  • 编写一个CRON表达式,从特定时间开始每隔X分钟运行一次。具体时间由用户传入。我现在的表情是这样的“0 10/15?* * *" (每15分钟) 这将相应地每15分钟运行一次,但当下一个开始时间的下一个小时时钟设置为原始分钟时(11:20),而不是时钟设置为11:05。我需要它从最初的开始时间开始无限期地每15分钟运行一次 这是我第一次使用CRON,并且很难找到如何正确编写表达式的信息。