【问题标题】:Is there a way to parse time so that it executes code only once in a given timeframe?有没有办法解析时间,以便在给定的时间范围内只执行一次代码?
【发布时间】:2021-10-12 17:21:51
【问题描述】:

假设我正在监听随机事件是否发生。 (具体来说,我是通过 webhook 来实现的。收到 webhook 后,我会执行代码)

我不希望我的 webhook 事件在给定时间范围内多次执行代码,例如30分钟。 但是,我不是这样说的:

"Received webhook?" 
"Wait 30 minutes until you can listen to webhooks again." 

不知何故,我想将一天中的 24 小时分成 48 个 部分 30 分钟,然后 webhook 只能在给定的时间内激活它的事件一次 部分。 [澄清一下:如果是 20 分钟,那么 20 分钟将有 72 个部分]

例如:代码在 14:21 激活。我希望它激活的下一个可能时间是 14:30。直到 14:30,我不希望代码激活比它已经做过的更多(一次)。然后再从14:30到15:00,我希望它最多激活一次,以此类推。

我不一定需要这样划分一天,我只是想解释一下我需要什么。

我希望我解释清楚了。

【问题讨论】:

    标签: python datetime time time-format time-frequency


    【解决方案1】:

    假设您有两个函数 enabledisable 可让您启用或禁用 webhook。首先为SIGALRM 添加一个启用钩子的信号处理程序:

    signal.signal(signal.SIGALRM, lambda: enable())
    

    当钩子被触发时,您可以执行以下操作:

    disable()
    signal.alarm(1800)
    

    这将禁用您的钩子,并要求您的程序在 30 分钟内收到SIGALRM 信号。当信号到达时,您的处理程序将调用enable 来启用您的网络挂钩。

    【讨论】:

      猜你喜欢
      • 2021-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-06
      • 2021-05-07
      相关资源
      最近更新 更多