
我遇到一个问题 就是 我想写一个死循环
while True: write(timeframe="1m") write(timeframe="5m") write(timeframe="1h") write(timeframe="1d") 如何能够实现
第一个 write 方法执行后休眠 60s 第二个 write 方法执行后休眠 5min 第三个 write 方法执行后休眠 1h 第四个 write 方法执行后休眠 1d
1 swordspoet 2018 年 10 月 13 日 via iPhone 这个很简单啊,用 time.sleep() 就可以。 |
2 u14e 2018 年 10 月 13 日 via Android time.sleep() ? |
3 Trim21 2018 年 10 月 13 日 via Android 我觉得你需要 crontab … |
4 zcsnbb OP time.sleep()的话 比如最后一个 睡一小时 那么第一个需要等待一小时才能执行,而我想让他每分钟执行 |
5 AlisaDestiny 2018 年 10 月 13 日 ```python #coding=utf-8 import concurrent.futures as futures # from concurrent.futures import ThreadPoolExecutor import time def write(delay): print('sleep:',delay) time.sleep(delay) return 'result' def main(): with futures.ThreadPoolExecutor(max_workers=4) as executor: download_futures = [executor.submit(write, delay) for delay in [60,5*60,60*60,24*60*60]] for future in futures.as_completed(download_futures): rs = future.result() print(rs) print('all done.') if __name__ == '__main__': main() ``` |
6 likuku 2018 年 10 月 13 日 @zcsnbb time.sleep() ,crontab 里每分钟叫这个 .py 起来一次,每次即一个新 py 进程。 当然,为了防止内存耗尽,你的 .py 或许要增加首先检测系统里有几个同名 .py 进程在跑, 假若超过你的限制,那么就直接 sys.exit() |
7 itskingname 2018 年 10 月 13 日 @likuku 补充 6 楼,如何使用 Shell 命令判断一个进程是否存在: https://mp.weixin.qq.com/s/b9RxTGGrUpUG1NgZoqE1uA |
8 picture2200 2018 年 10 月 13 日 via Android 要定时任务吧,用 apscheduler 吧。照你这样写很麻烦啊。 |
9 chrisyunhua 2018 年 10 月 13 日 每秒钟取 timestamp 再去 mod timeframe 判断一下不行吗 |
10 May725 2018 年 10 月 13 日 我觉得你应该用 Timer 定时任务来做,而不是简单的 sleep,因为长时间的 sleep 误差挺大的,有可能一直挂起不恢复了。 |
11 WizardMeow 2018 年 10 月 13 日 via Android asyncio 了解一下,轻量级解决方案 |
12 WizardMeow 2018 年 10 月 13 日 via Android 另外 sleep 最好不要超过 h |
13 beny2mor 2018 年 10 月 13 日 Timer? |
14 elioti 2018 年 10 月 13 日 定时任务? schedule 模块 |
15 yzding 2018 年 10 月 13 日 via Android schedule,给人类用的定时器模块。 # 每十分钟执行一次 schedule.every(10).minutes.do(job) # 每 1 小时执行一次 schedule.every().hour.do(job) # 每天执行一次 schedule.every(). day.do(job) while True: schedule.run_pending() time.sleep(1) |
16 chanin 2018 年 10 月 13 日 python 多线程有点尴尬,golang 了解一下! |
17 myliyifei 2018 年 10 月 13 日 via Android 我倒是想知道 多线程或者多进程 最后一句是不是总是 while true + time.sleep ? 死循环等介绍 |
19 ffffish 2018 年 10 月 13 日 为了避免著名的 X-Y 问题,我想问一下这个 use case 是什么呢?为什么需要 wait 呢? 如果轻量级可以用 cronjob,大型项目可以考虑 apache airflow |