开发者社区> 问答> 正文

schedule有计划加延时这种么?放个redis key,设置个过期时间,这样也能弄出差不多的效果

schedule有计划加延时这种么?放个redis key,设置个过期时间,这样也能弄出差不多的效果了

展开
收起
真的很搞笑 2023-07-17 14:09:14 71 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在 Python 的 schedule 模块中,可以使用 delay 函数或 enter 函数来实现任务的延迟执行,从而达到加延时的效果。

    具体来说,delay 函数可以用于延迟执行一次性任务,例如:

    less
    Copy
    import schedule
    import time

    def job():
    print("Delayed job")

    schedule.every(5).minutes.do(job)
    schedule.delayed(10).minutes.do(job)

    while True:
    schedule.run_pending()
    time.sleep(1)
    在上述代码中,schedule.every(5).minutes.do(job) 表示每隔 5 分钟执行一次 job 函数,而 schedule.delayed(10).minutes.do(job) 表示延迟 10 分钟后执行一次 job 函数。

    2023-07-29 10:48:16
    赞同 展开评论 打赏
  • 是的,您可以使用Redis和过期时间来实现一个简单的计划加延时的功能。下面是一种基本的实现思路:

    1. 设置Redis键和过期时间:将您要执行的任务作为值存储在Redis的一个键中,并设置适当的过期时间,以表示任务应该在何时执行。

    2. 监听过期事件:使用Redis的键空间通知功能,订阅键过期事件。当任务到达预定的过期时间时,Redis会发送一个过期事件通知。

    3. 执行任务:在收到过期事件通知后,您可以编写一个处理程序来执行相应的任务。根据具体需求,您可以将任务的相关数据从Redis中获取,然后执行相应的逻辑或操作。

    这种方式的好处是利用了Redis内建的过期机制,可靠地触发任务的执行。但请注意,这种方法可能不适合需要高精度延时的场景,因为Redis的过期机制只保证在过期时间后尽早释放键,而并不能保证精确到毫秒级的触发。

    2023-07-17 15:35:36
    赞同 展开评论 打赏
  • 有计划工作流中任务也可以单独配置调度时间,不过感觉只有天级别任务才满足,场景就有限一点,此回答整理自钉群“【外部】SchedulerX阿里任务调度”

    2023-07-17 14:15:26
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
问答排行榜
最热
最新

相关电子书

更多
Redis在唯品会的应用实践——架构演进与功能定制 立即下载
微博的Redis定制之路 立即下载
云数据库Redis版的开源之路 立即下载