python根据时间断随机分布,触发执行的思路是什么?

我有一个主控端,需要的功能是每天根据随机时间断(一天多次,且无任何规律),然后去爬取一个网站...
而这个主控端,每天可能会生成N个任务,所以写在crontab不现实

我的问题是,python可以给程序设定一个时间段,然后时间到了就触发执行吗?
这个需要写个while一直监听吗?用更好的实现方式吗

阅读 3.5k
1 个回答
import random
import datetime
from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler()

def yourfunc():
    print(datetime.datetime.now().strftime('%Y-%m-%d %X'))


def myfunc():
    scheduler.remove_job('my_job_id')
    yourfunc()
    t = random.randint(1,5) # 1~5秒随机
    scheduler.add_job(myfunc, 'interval', seconds=t, id='my_job_id') # seconds可以换成minutes 随机个60~200分钟的估计就满足你的需求了吧

   
scheduler.add_job(myfunc, 'interval', seconds=1, id='my_job_id')
scheduler.start()
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题