Noapes' blog

Stay hungry, Stay foolish

Fullstack Python Articles


任务队列

Origin Url: Task Queues 任务队列概述 任务队列是管理后台工作任务的,这些任务必须是在http请求相应周期外执行的。 为什么任务队列是必要的? 因为任务并不是http请求发起的,同时也因为他们是需要长时间执行的工作,往往会显著的影响http相应效率, 所以任务是异步处理的。 举个例子,一个web应用会每隔十分钟去轮询GitHub API来收集关注排名前100的仓库。 任务队列将处理调用代码来请求GitHub API, 处理请求结果,将处理好的结果保存一个持久化数据以供后续使用。 另外一个例子是,在一个http请求相应http周期里,一次数据库查询可能会会花费很长时间。该查询可以以一个固定的时间间隔运行在后台,然后将结果存储在数据库。 当一个请求需要这些结果时,可以很方便的获得预先计算的结果,而不是再执行一个耗时较长的查询。这个预先计算的场景是任务队列启用缓存的一种形式。 以下是任务队列其他类型的作业 将大数据插入打散成小数据插入,而不是一次性大量插入 定期执行,比如15分钟,聚合数据 计划执行周期行任务,比如批处理 任务对类项开源项目