
Django-Celery-Flower 实现异步和定时爬虫及其监控邮件告警
文章摘要
洪墨AI
生成中...
1 Django 中集成方式一(通用方案)
1.1 把上面的包 - 复制到 djagno 项目中
1.2 在 views 中编写视图函数
1.3 配置路由
1.4 浏览器访问,提交任务
1.5 启动 worker 执行任务
1.6 查看任务结果
2 Django 中集成方式二(官方方案)
2.0 安装模块
2.1 在项目目录下新建 celery.py
2.2 在 django 配置文件中加入
2.3 在主目录的 init.py 中添加如下代码
2.4 在 app 下新建 tasks.py (必须叫 tasks.py)
2.5 实现异步 views.py
2.6 配置路由
总路由 urls.py
app 自己的路由 urls.py
2.7 启动 celery
2.8 浏览器访问 - 添加任务
3 实现定时任务
3.1 settings.py 加入
3.2 启动 worker 和 beat
4 通过 Admin 配置定时任务
4.1 安装 djiango-celery-beat
4.2 在 APP 中注册 djiango-celery-beat
4.3 在 settings.py 中设置调度器及时区
在 settings.py 中屏蔽到原来的调度器,加入
4.4 设置时区
4.5 数据库迁移
4.6 启动 woker 和 beat
4.7 创建超级用户 - 访问 admin 的 web 管理端
4.8 美化 admin
5 admin 监控任务执行情况
5.1 安装 django-celery-results
5.2 配置 settings.py,注册 app
5.3 修改 backend 配置,将 Redis 改为 django-db
5.4 迁移数据库
5.5 admin 查看
6 Flower 监控任务执行情况
如果不想通 django 的管理界面监控任务的执行,还可以通过 Flower 插件来进行任务的监控。Flower 的界面更加丰富,可以监控的信息更全
Flower 是一个用于监控和管理 Celery 集群的开源 Web 应用程序。它提供有关 Celery workers 和 tasks 状态的实时信息
6.1 安装和启动
7 任务异常自动告警
虽然可以通过界面来监控了,但是我们想要得更多,人不可能天天盯着界面看吧,如果能实现任务执行失败就自动发邮件告警就好了。这个 Celery 当然也是没有问题的。
通过钩子程序在异常的时候触发邮件通知
7.1 tasks.py 中加入
7.2 重启服务
7.3 验证效果
在任务成功或失败的时候发邮件通知
8 爬取技术文章并告警
8.1 task.py
8.2 models.py
8.3 在 admin 中添加任务并查看结果
8.4 爬美女图片
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员 MarsXu
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果