我应该为python爬虫程序使用无限循环还是cron作业?

2022-12-05 02:59:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python编写了一个爬虫程序,它可以访问60多个网站,解析HTML,并将数据保存到数据库中

现在我正在使用cron作业每15分钟运行一次爬虫程序。问题是,我无法判断爬虫程序需要多少时间才能完成(有时可能需要超过15分钟),如果一个爬虫程序已经在运行,我不想运行另一个爬虫程序

我一直在想,使用无限循环是否会更好,并使爬虫程序成为始终运行的永久进程(但如何确保爬虫程序不会失败并退出?以及如何在每次退出时重新启动它?)

哪一个更有效?无限循环还是cron作业


1条回答
网友
1楼 · 发布于 2022-12-05 02:59:04

你可以试试simple_scheduler。使用周期性调度程序,周期为20分钟[假设20分钟是所需的最大时间]

from simple_scheduler.recurring import recurring_scheduler
recurring_scheduler.add_job(target=crawler_function, period_in_seconds=20*60)
recurring_scheduler.run()

优点是:

  • 每隔20分钟,就会实例化另一个爬虫程序
  • 若发生错误,以后对爬虫程序的调用将不会受到影响。代码仍在运行