Django 快速开发实战
吕召刚
前大众点评搜索负责人
22705 人已学习
新⼈⾸单¥68
课程目录
已完结/共 76 讲
日常开发中常见的复杂场景:Django进阶开发实战 (22讲)
通往Hacker之路 (3讲)
Django 快速开发实战
登录|注册
留言
13
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 42 | Django与Celery集成:定时任务
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 内容综述
03 | 初识Django:Django适合做什么?
04 | 用2个命令创建一个包含用户管理功能的后台
05 | 开始Django之旅 :10分钟如何创建一个可以管理职位的后台
06 | 产品体验优化:快速迭代完善应用
07 | 添加自定义页面:让匿名用户可以浏览职位列表页
08 | 添加自定义页面:让匿名用户可以查看职位详情
09 | 开始一个正式的产品:产品背景、迭代思维与MVP产品规划
10 | 唯快不破:在产品中使用产品迭代思维
11 | 数据建模 & 企业级数据库设计原则
12 | 创建应用和模型,分组展示页面内容
13 | 产品新需求:如何批量从Excel文件导入候选人数据(命令行工具)
14 | 产品体验优化:候选人列表筛选和查询
15 | 省去单独的账号管理工作:企业域账号集成
16 | 批量设置面试官:面试官的导入、授权
17 | 产品新需求 :如何导出候选人的数据到CSV(增加自定义的数据操作菜单)
18 | 如何记录日志方便排查问题
19 | 生产环境的配置如何管理更安全: 生产环境与开发环境配置分离
20 | 产品细节完善
21 | 定制更美观的主题
22 | 定制面试官权限
23 | 系统报错功能:钉钉群消息集成&通知一面面试官
24 | 允许候选人注册登录: 集成Registration
25 | 候选人简历存储:创建简历Model
26 | 让候选人可以在线投递简历
27 | 使用Bootstrap来定制页面样式
28 | 简历评估&安排一面面试官
29 | 定制列表字段,查看简历详情
30 | 遗留系统集成:为已有系统数据库生成管理后台
31 | Django的中间件(Middleware)
32 | 创建请求日志、性能日志记录中间件
33 | 在Django中支持多语言
34 | 错误和异常日志上报:Sentry集成
35 | 错误和异常日志上报:捕获异常上报到Sentry并发送钉钉群通知
36 | Django安全防护:防止XSS跨站脚本攻击
37 | Django安全防护:CSRF跨站请求伪造和SQL注入攻击
38 | Django Rest Framework开放API
39 | 在Django中使用缓存&Redis的使用
40 | Django与Celery 集成:Celery的使用
41 | Django与Celery集成:异步任务
42 | Django与Celery集成:定时任务
43 | 文件和图片上传功能
44 | 实践中的问题:多数据库路由
45 | Django之美:3 行代码支持大数据量的关联外键 (autocomplete_fields)
46 | Django之美:20行代码实现只读站点ReadOnlyAdmin
47| Django之美:10行代码自动注册所有Model到Admin管理后台
48 | Django之美:Signals信号及其使用场景
49 | Django之美:优雅的架构设计 - CSR架构总结之Celery
50 | Django之美:优雅的架构设计 - CSR架构总结之Sentry&Django Rest Framework
51 | Django之美:Django的常用插件
52 | 生产环境要注意哪些事项:生产环境的应用部署
53 | 应用水平扩展:使用负载均衡
54 | 让网站访问更快:使用CDN加速
55 | 让故障在第一时间被感知到:接入监控告警
56 | 生产环境中的安全:生产环境的安全设计
57 | 生产环境中的安全:应用安全
58 | 生产环境中的安全:架构安全
59 | 生产环境中的安全:数据安全
60 | 生产环境中的安全:密码安全与业务安全
61 | 云环境中的部署:Docker容器的基础用法
62 | 云环境中的部署:如何像分发集装箱一样发布应用
63 | 云环境中的部署:开发环境的容器化&构建小镜像
64 | 云环境中的部署:什么时候需要容器编排
65 | 云环境中的部署:阿里云上搭建Kubernetes集群
66 | 云环境中的部署:管理监控容器中的Django应用
67 | 云环境中的部署:应用日志收集与查询
68 | 云环境中的持续集成:CI/CD的工作流程
69 | 云环境中的持续集成:CI/CD的基本使用
70 | 快速迭代的价值与挑战
71 | 使用OOPD方法识别产品核心功能
72 | 如何做技术方案设计与工作拆解
73 | 如何保证交付质量和持续迭代
74 | 如何更高效地寻求帮助?
75 | 一名Hacker的成长之路
76 | 结束语
登录 后留言

全部留言(13)

  • 最新
  • 精选
坐看云起时
有点奇怪,我跟视频一样,把 'django_celery_beat' 放在 INSTALLED_APPS 的最后,但是发现无法触发 makemigrations,意思就是 python manage.py makemigrations 或者 python manage.py makemigrations django_celery_beat 结果 "No changes detected". 最后怀疑是不是 'django_celery_beat' 在 INSTALLED_APPS 里面的顺序有关,就把他放到了 靠前一点,结果执行 python manage.py makemigrations 就没问题了。 可是查了下 django_celery_beat 的官网,https://github.com/celery/django-celery-beat,也没提到需要注意这些。 我怀疑

作者回复: 感谢分享

2021-04-30
2
1
Mosson
Traceback (most recent call last): File "/Users/mosson/.pyenv/versions/3.9.1/envs/jobInterview/bin/celery", line 8, in <module> File "/Users/mosson/.pyenv/versions/3.9.1/lib/python3.9/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 790, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "/Users/mosson/Documents/学习/Python/recruitment/recruitment/__init__.py", line 3, in <module> from .celery import app as celery_app File "/Users/mosson/Documents/学习/Python/recruitment/recruitment/celery.py", line 57, in <module> from django_celery_beat.models import PeriodicTask, IntervalSchedule File "/Users/mosson/.pyenv/versions/3.9.1/envs/jobInterview/lib/python3.9/site-packages/django_celery_beat/models.py", line 75, in <module> class SolarSchedule(models.Model): File "/Users/mosson/.pyenv/versions/3.9.1/envs/jobInterview/lib/python3.9/site-packages/django/db/models/base.py", line 108, in __new__ app_config = apps.get_containing_app_config(module) File "/Users/mosson/.pyenv/versions/3.9.1/envs/jobInterview/lib/python3.9/site-packages/django/apps/registry.py", line 253, in get_containing_app_config self.check_apps_ready() File "/Users/mosson/.pyenv/versions/3.9.1/envs/jobInterview/lib/python3.9/site-packages/django/apps/registry.py", line 136, in check_apps_ready raise AppRegistryNotReady("Apps aren't loaded yet.") django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

作者回复: 代码不建议放到中文目录下,出了问题很难排查。你的目录结构是怎么样的,可以加微信群贴图聊

2021-03-30
5
小田君
老师请教您两个问题:Celery自带的beat调度功能和django-celery-beat库的beat,两种我都试了下,除了后者可以在数据库里建立和periodic task相关的表,方便管理和记录任务, 功能上有什么特别不一样的地方吗? 另外在生产环境里面,比如用docker搭建服务的时候,celery worker service和beat service一般是在同一个容器里面执行吗?在代码库的docker-compose文件里面没有看到执行beat的命令,这里不是很理解。

作者回复: docker compose里面没有加定时任务的beat容器,你需要的话可以加一下。一般分开在不同的容器里面跑,一个进程一个容器。两个beat没有细对比过,你可以对比一下各自的feature list

2020-12-20
坐看云起时
视频讲解第四种方式时,遇到 "具体同名的 PeriodicTask" 问题时,直接换了个task名字绕过这个问题。 如果不换名字,代码里面先查询有没有同名的,比如这样: schedule, created = IntervalSchedule.objects.get_or_create(every=10, period=IntervalSchedule.SECONDS,) if not PeriodicTask.objects.filter(name='say welcome').exists: task = PeriodicTask.objects.create(interval=schedule, name='say welcome', task='recuitment.celery.test', args=json.dumps(['welcome']),)
2021-04-30
1
坐看云起时
在 https://github.com/celery/django-celery-beat,里面有 通过 Python Shell 的方式执行创建 periodic task。 比如: >>> from django_celery_beat.models import PeriodicTask, IntervalSchedule # executes every 10 seconds. >>> schedule, created = IntervalSchedule.objects.get_or_create( ... every=10, ... period=IntervalSchedule.SECONDS, ... ) 但是,如果直接在 Python shell 执行,你会遇到错误如下: ❯ python Python 3.8.6 (default, Dec 23 2020, 14:58:02) [Clang 12.0.0 (clang-1200.0.32.28)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> from django_celery_beat.models import PeriodicTask, IntervalSchedule Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Users/django_env/lib/python3.8/site-packages/django_celery_beat/models.py", line 75, in <module> class SolarSchedule(models.Model): File "/Users/django_env/lib/python3.8/site-packages/django/db/models/base.py", line 108, in __new__ app_config = apps.get_containing_app_config(module) File "/Users/django_env/lib/python3.8/site-packages/django/apps/registry.py", line 253, in get_containing_app_config self.check_apps_ready() File "/Users/django_env/lib/python3.8/site-packages/django/apps/registry.py", line 136, in check_apps_ready raise AppRegistryNotReady("Apps aren't loaded yet.") django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet. >>> 需要这样执行就可以: python manage.py shell
2021-04-30
1
James-东方
如果多个app,有设置定时器的需求,应该如何注册app呢, 或者说应该如何保证多个app可以合理调用自己的task?
2022-09-20
James-东方
吕老师,我遇到一个比较问题,就是如果interview里面设置的定时任务,怎么注册到celery.py里面? 现在,我们只有一个celery.py是在recruitment(主app)里面的, 可是定时任务,需要别的app的时候,应该怎么处理? 我现在就遇到一个问题,问题大致就是https://stackoverflow.com/questions/73768782/is-celery-beats-can-only-trigger-a-celery-task-or-normal-task-django
2022-09-20
大磊
吕老师,我在按照您的案例将Django和celery集成后,想在Task中打印一些日志,结果发现配置文件中的LOGGING 只是针对django中的views等起作用,对celery不起作用,也就是说celery不能使用django的日志记录器。请问应该如何让celery使用django的日志进行输出?谢谢!
2021-12-28
zth
找到了 from celery import Celery 包下的add_periodic_task
2021-08-25
zth
有点疑惑, sender.add_periodic_task(10.0, test.s('hello'), name='hello every 10') 是调用了什么去执行。sender 属于什么包下的。
2021-08-24
收起评论