当前位置: 首页 > news >正文

儿童做网站广告传媒公司网站怎么做

儿童做网站,广告传媒公司网站怎么做,邯郸网站改版找谁做,餐饮业建设网站意义文章目录一、Celery 命令行工具二、Celery 图形监控Celery Flower 图形监控基本使用与Django项目集成三、Redis 图形监控四、Celery 排错PermissionError权限错误AppRegistryNotReady 错误任务参数时区一、Celery 命令行工具 Celery 命令行工具可用去查看Celery的运行状态。打…

文章目录

    • 一、Celery 命令行工具
    • 二、Celery 图形监控
      • Celery Flower 图形监控
      • 基本使用
      • 与Django项目集成
    • 三、Redis 图形监控
    • 四、Celery 排错
      • PermissionError权限错误
      • AppRegistryNotReady 错误
      • 任务参数
      • 时区


一、Celery 命令行工具

Celery 命令行工具可用去查看Celery的运行状态。打开一个终端窗口,进入项目目录(与manage.py同级),运行以下命令

  • 列出集群中在线的Celery Worker节点
celery -A mysite status### 大概10秒后,输出结果
->  celery@DESKTOP-MHHVBI3: OK1 node online.
  • 列出正在执行的Celery 任务
celery -A mysite inspect active### 输出结果
->  celery@DESKTOP-MHHVBI3: OK- empty -1 node online.
  • 列出已注册的Celery 任务
celery -A mysite inspect registered### 输出结果示例
->  celery@DESKTOP-MHHVBI3: OK* myapp_infra.tasks.cleanup_expired_data* myapp_infra.tasks.send_daily_report* myapp_system.tasks.login_log_task* myapp_system.tasks.operation_log_task* myapp_system.tasks.send_single_mail_task1 node online.
  • 显示Celery 统计数据
celery -A mysite inspect stats ### 输出结果示例
->  celery@DESKTOP-MHHVBI3: OK{"broker": {"alternates": [],"connect_timeout": 4,"failover_strategy": "round-robin","heartbeat": 0,"hostname": "127.0.0.1","insist": false,"login_method": null,"port": 6379,"ssl": false,"transport": "redis","transport_options": {},"uri_prefix": null,"userid": null,"virtual_host": "3"},"clock": "543","pid": 2316,"pool": {"implementation": "celery.concurrency.solo:TaskPool","max-concurrency": 1,"max-tasks-per-child": null,"processes": [2316],"put-guarded-by-semaphore": true,"timeouts": []},"prefetch_count": 32,"rusage": "N/A","total": {"myapp_infra.tasks.cleanup_expired_data": 3,"myapp_system.tasks.login_log_task": 36},"uptime": 541}1 node online.

小结:

  • 以上命令支持 --timeout参数,例如在命令后加上--timeout 3
  • 参考资料:Celery 监控

二、Celery 图形监控

Celery Flower 图形监控

Celery Flower 是一个用于监控和管理 Celery 任务的开源 Web 应用程序,它提供了实时的任务状态监控、任务执行图表、工作者信息、任务追踪和任务日志等功能。

安装

pip install flower

基本使用

Celery Flower 服务启动命令:进入根目录(包含manage.py文件的目录)执行

celery -A mysite flower --port=5555

访问 http://<IP>:5555 查看Celery 图形监控

  • 点击 Workers 查看 Celery Worker 状态

在这里插入图片描述

  • 点击 Tasks 查看当前及后来的任务(不会显示以前的任务)。另外,通过观察任务列表的变化,判断 Celery Beat 的状态是否正常。

在这里插入图片描述

  • 点击 Broker 查看 Redis 状态

在这里插入图片描述

与Django项目集成

对于Django+Vue3的前后端分离项目,使用iframe(内联框架) HTML 元素,可将网页嵌入其他网页。实现将Celery Flower 集成到Django项目中。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击查看集成代码

三、Redis 图形监控

Redis一般作为Celery的消息中间件 (Broker),负责接收任务生产者发送的消息并将任务存入队列。

安装工具:Another Redis Desktop Manager,是一个Redis的图形管理界面工具。下载地址
在这里插入图片描述

解压即可使用。连接Redis 服务器后,查看celery队列中的任务数。

  • 如果没有celery键,表示当前没有等待的Celery任务

在这里插入图片描述

四、Celery 排错

PermissionError权限错误

错误信息

[2025-04-12 22:53:48,435: INFO/MainProcess] Task tasks.add[6d0cc2d2-0a84-4a4d-b5e7-e86a4bd9b625] received
[2025-04-12 22:53:48,436: ERROR/SpawnPoolWorker-6] Pool process <billiard.pool.Worker object at 0x0000027D686A33D0> error: PermissionError(13, '拒绝访问。', None, 5, None)
Traceback (most recent call last):

解决方法

# 在Windows系统中,prefork 多进程模式可能导致权限冲突。改用单进程模式启动--pool=solo 
celery -A tasks worker --loglevel=INFO --pool=solo 

AppRegistryNotReady 错误

错误信息

2025-05-17 18:33:13,886 INFO D:\workspace_python\mars-mgn\mysite\myapp_system\tasks.py changed, reloading.
Traceback (most recent call last):
...File "D:\workspace_python\mars-mgn\venv\Lib\site-packages\django\apps\registry.py", line 138, in check_apps_readyraise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

原因及解决方法

  • 分析:Celery初始化与Django启动顺序问题:在celery.py中通过app.autodiscover_tasks()自动发现任务时,可能过早加载包含Django模型的任务模块,而Django的INSTALLED_APPS尚未完全初始化
  • 避免在任务模块顶部直接导入Django模型。将模型导入操作移至任务函数内部
# myapp_system/tasks.py
from celery import shared_task
from django.core.mail import send_mail@shared_task
def send_email_task(subject, message, from_email, recipient_list):# 导入操作移至任务函数内部:延迟导入模型和序列化器from .mail_log.serializers import MailLogSaveSerializerfrom .models import SystemMailLog# 发送邮件逻辑send_mail(subject, message, from_email, recipient_list)return "邮件发送成功"

任务参数

错误信息

celery.beat.SchedulingError: Couldn't apply scheduled task daily_cleanup_expired_data: cleanup_expired_data() takes 0 positional arguments but 1 was given

解决方法

  • 分析:args 和 kwargs 参数是传递给任务。若定义任务时没有定义接收参数,但却传递了arsg或kwargs参数,则Celery Beat 会报错
  • 修改任务定义的代码,然后重启Celery worker和 beat。

时区

建议使用统一的时区,例如全部统一为东八区

  • settings.py 中明确配置
# 设置 Django 时区
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = True# 配置 Celery 时区
CELERY_TIMEZONE = 'Asia/Shanghai'# MySQL数据库连接字符串中添加时区参数
DATABASES = {"default": {"ENGINE": "django.db.backends.mysql",# ..."OPTIONS": {"init_command": "SET time_zone='+08:00'"},}
}
  • Celery Worker 所在服务器系统时区为
# 查看系统时区
timedatectl | grep "Time zone"
# 设置时区
timedatectl set-timezone Asia/Shanghai

您正在阅读的是《Django从入门到实战》专栏!关注不迷路~

http://www.dtcms.com/a/429514.html

相关文章:

  • 棋牌游戏在哪做网站无锡知名网站推广
  • 福州网站建设电话seo哪里可以学
  • 手机做网站公司企业网络营销方案策划
  • 无锡网站建设哪里好wordpress 图片展示 插件
  • 做网站前后端的发布流程查询公司营业执照的网站
  • 商务网站的规划与建设总结wordpress手机适配
  • 天津七七一网站建设有限公司怎么样网站页面设置
  • 广州做网站费用wordpress 做的人多吗?
  • zencart网站地图生成宁波谷歌优化
  • 在线网站建设哪家便宜东莞动点网络科技有限公司
  • 做网站微信朋友圈应该怎么发网站建设规模与类别
  • 做一个网站成本多少钱php网站颜色改变
  • 官网网站备案流程图做公益筹集项目的网站
  • 零食网站建设的必要性成都网络营销网站
  • 网站开发电销常遇到问题求职简历
  • 常州手机网站建设网站建设什么代码最简单
  • 用邮箱地址做网站域名好吗dz网站开发
  • 专业网站建设制作云南网直播
  • 博罗网站建设开源建站工具
  • 做网站如何收集资料个人主页生成
  • 用帝国cms做企业网站做企业网站哪里找
  • 网站建设犀牛濮阳房产网
  • 锤子手机网站模板东莞大岭山网站制作
  • 做网站湖州三亚发布紧急通知
  • 专做女鞋的网站代发广州河北省城乡住房和城乡建设厅网站
  • 河北省建设厅网站查询网站可行性分析
  • 重庆网站推广方法大全龙岩网页
  • 家用电脑如何做网站做网站 设备
  • wordpress作者权限seo排名是什么
  • 网站换行代码wordpress整站无刷新