框架
猴子饲养员
爱Python,爱生活~
展开
-
celery中的 task_time_limit 和 task_soft_time_limit
本周,项目里突然爆出几个任务失败的告警,失败任务也没进死信,就这么丢了,经过排查,发现了这两个配置项的坑。两个配置项都是默认无时间限制, 单位:秒区别task_time_limit:hard模式,如果配置了10s, 10s内 task 没有执行结束,则处理这个task会被杀掉,并继续执行其他新的 tasktask_soft_time_limit:soft 模式,如果配置了10s, 10s内 task 没有执行结束,可以在 task 内捕获这个异常,并处理。也可以在全局处理,进行重试或扔死信队列等原创 2020-08-25 17:32:55 · 5035 阅读 · 0 评论 -
celery 自定义数据持久化方案
文章主要以自己现在写的项目举例,提供自定义异步任务数据持久化的一个思路,具体如何执行还要参考每个项目的具体情况。版本Flask==0.10.1celery==3.1.18celery 自定义数据持久化方案由于当前使用MySQL存储任务即可完成日常检索需求,故使用MySQL来做任务的持久化。如果有复杂检索的需求,可以使用 elasticsearch 来存储数据,可以更方便的实现 U...原创 2019-11-06 15:30:36 · 1563 阅读 · 4 评论 -
celery broker 迁移 (Redis 迁移至 RabbitMq)
背景项目中一直使用 Redis 作为 celery 的 broker,会出现偶发的任务重复执行的情况,再加上一直没有队列的监控工具,任务没有持久化,存在一定的风险。故开启了 broker 由 Redis 迁移至 RabbitMq 的路程。如何无缝迁移 ?由于不能停服迁移,最大的问题就变成了如何保证原有 Redis 中的任务都能正常执行完成,且新的任务在 rabbitmq 中正常运转。话说 ...原创 2019-11-06 11:20:06 · 917 阅读 · 0 评论 -
Python爬虫 scrapy框架 原理,scrapy开发流程
Scrapy Engine 引擎 处理整个系统,是各个模块之间的联系人,各个模块的数据均需要引擎来发送和收回Scheduler 调度器 a.接收请求,压入队列 b.引擎再次请求时返回请求 Downloader 下载器 接收请求request,返回响应responseSpider 爬虫 a.发起起始的请求 start_url b.定义如何爬取下一个网站 call_backItem原创 2017-11-03 18:12:06 · 580 阅读 · 0 评论 -
Celery实践, 多队列,多优先级,任务重试
在 Python 的 web 框架中,Flask 由于其轻量、易于扩展而得到了广泛的应用,本文主要基于 Flask 浅谈 Celery 的应用。 Celery是一个简单、灵活且可靠的分布式系统,常用于处理大量消息,同时也提供了维护该系统所需的工具。简而言之,Celery就是一个任务队列,专注...原创 2019-02-11 21:30:26 · 5919 阅读 · 0 评论