南宁网站制作哪家好/淘宝推广平台有哪些

南宁网站制作哪家好,淘宝推广平台有哪些,教案怎么写模板,宣城网站制作Djangoceleryflower Django的定时任务及可视化监控Django Django的定时任务及可视化监控 Django的定时任务,以及可视化监控。 Django Django; 首先在python中新建虚拟环境并激活 pip install virtualenv python -m venv venv source venv/bin/activa…

Django+celery+flower

  • Django的定时任务及可视化监控
    • Django

Django的定时任务及可视化监控

Django的定时任务,以及可视化监控。

Django

  1. Django;
    首先在python中新建虚拟环境并激活
pip install virtualenv
python -m venv venv
source venv/bin/activate
pip install django #安装django
安装
  1. 创建django项目;
django-admin startproject myproject
cd myproject

启动Django开发服务器:

python manage.py runserver

默认情况下,服务器会运行在 http://127.0.0.1:8000/。

完成后,可以停用虚拟环境:

deactivate
  1. redis;
    这里使用源码安装,参考redis官网
    新开一个窗口,不在python虚拟环境操作
wget https://download.redis.io/redis-stable.tar.gz
tar -xzvf redis-stable.tar.gz
cd redis-stable
make
sudo yum install openssl-devel
make BUILD_TLS=yes
sudo make install
cp redis.conf  /etc/
redis-server /etc/redis.conf

检查redis是否启动

redis-cli
127.0.0.1:6379> ping
PONG  #成功
  1. celery简单示例;
    安装
pip install  celery django-celery-beat 

新建一个应用

python manage.py startapp myapp

将 myapp 和 django_celery_beat 添加到 INSTALLED_APPS 中,编辑 myproject/settings.py 文件:

INSTALLED_APPS = [...'django_celery_beat','myapp',
]

在 myproject 文件夹下创建一个名为 celery.py 的文件,并添加以下内容:

import os
from celery import Celeryos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
app = Celery('myproject')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()

在 myproject/init.py 文件中添加以下内容:

from .celery import app as celery_app__all__ = ('celery_app',)

在 myproject/settings.py 文件中添加 Celery 配置:

CELERY_BROKER_URL = 'redis://localhost:6379/0'
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
CELERY_TIMEZONE = "Asia/Shanghai"
CELERY_ENABLE_UTC = False

在 myapp 文件夹下创建一个名为 tasks.py 的文件,并定义一个简单的定时任务:

from celery import shared_task
import datetime@shared_task
def print_time():now = datetime.datetime.now()print(f"Current time: {now}")

在 myproject/celery.py 文件中定义定时任务的调度计划:

from celery.schedules import crontabapp.conf.beat_schedule = {'print-time-every-minute': {'task': 'myapp.tasks.print_time','schedule': crontab(minute='*'),},
}

这里定义了一个名为 print-time-every-minute 的定时任务,它会每分钟执行一次 myapp.tasks.print_time 任务。
启动 Celery worker:

celery -A myproject worker -l info

启动 Celery beat:

celery -A myproject beat -l info

启动 Django 开发服务器:

python manage.py runserver

查看结果
在终端中可以看到 Celery beat 每分钟调度一次 print_time 任务,并在 Celery worker 的终端中打印当前时间。

  1. 定时任务时间写法;
    在 Celery 中,定时任务的定时时间可以通过多种方式指定,主要包括以下几种常见的写法
    1)使用 crontab,例如每分钟、每小时、每天、每周等
from celery.schedules import crontabapp.conf.beat_schedule = {'print-time-every-minute': {'task': 'myapp.tasks.print_time','schedule': crontab(minute='*'),  # 每分钟执行一次},'print-time-every-hour': {'task': 'myapp.tasks.print_time','schedule': crontab(minute=0, hour='*'),  # 每小时的第0分钟执行一次},'print-time-every-day': {'task': 'myapp.tasks.print_time','schedule': crontab(minute=0, hour=0),  # 每天的凌晨0点执行一次},'print-time-every-week': {'task': 'myapp.tasks.print_time','schedule': crontab(minute=0, hour=0, day_of_week=1),  # 每周一凌晨0点执行一次},
}

参数说明:
minute:分钟,范围是 0-59。
hour:小时,范围是 0-23。
day_of_week:星期几,范围是 0-6,其中 0 表示星期天。
2)使用 timedelta,指定任务的执行间隔,例如每几秒、几分钟、几小时等。

from datetime import timedeltaapp.conf.beat_schedule = {'print-time-every-10-seconds': {'task': 'myapp.tasks.print_time','schedule': timedelta(seconds=10),  # 每10秒执行一次},'print-time-every-15-minutes': {'task': 'myapp.tasks.print_time','schedule': timedelta(minutes=15),  # 每15分钟执行一次},'print-time-every-2-hours': {'task': 'myapp.tasks.print_time','schedule': timedelta(hours=2),  # 每2小时执行一次},
}

3)timedelta 的固定时间间隔,需要任务在固定的时间间隔内执行,可以使用 timedelta 的组合

from datetime import timedeltaapp.conf.beat_schedule = {'print-time-every-1-hour-30-minutes': {'task': 'myapp.tasks.print_time','schedule': timedelta(hours=1, minutes=30),  # 每1小时30分钟执行一次},'print-time-every-2-days-12-hours': {'task': 'myapp.tasks.print_time','schedule': timedelta(days=2, hours=12),  # 每2天12小时执行一次},
}

4)crontab 的高级组合,支持更复杂的组合,例如指定特定的分钟、小时、星期几等

from celery.schedules import crontabapp.conf.beat_schedule = {'print-time-specific-time': {'task': 'myapp.tasks.print_time','schedule': crontab(minute=30, hour=14, day_of_week='mon,tue,wed'),  # 每周一、二、三的下午2点30分执行一次},'print-time-specific-dates': {'task': 'myapp.tasks.print_time','schedule': crontab(minute=0, hour=0, day_of_month='1,15'),  # 每月的1号和15号凌晨0点执行一次},
}

参数说明:
minute:可以指定具体的分钟,例如 30 或 0,15,30,45。
hour:可以指定具体的小时,例如 14 或 0-23。
day_of_week:可以指定具体的星期几,例如 mon,tue,wed 或 1-5。
day_of_month:可以指定具体的日期,例如 1,15。
5)crontab 的通配符指定更灵活的时间。

from celery.schedules import crontabapp.conf.beat_schedule = {'print-time-every-other-minute': {'task': 'myapp.tasks.print_time','schedule': crontab(minute='*/2'),  # 每隔2分钟执行一次},'print-time-every-other-hour': {'task': 'myapp.tasks.print_time','schedule': crontab(minute=0, hour='*/2'),  # 每隔2小时执行一次},'print-time-every-weekday': {'task': 'myapp.tasks.print_time','schedule': crontab(minute=0, hour=0, day_of_week='1-5'),  # 每个工作日的凌晨0点执行一次},
}

参数说明:
minute=‘/2’:每隔2分钟执行一次。
hour='
/2’:每隔2小时执行一次。
day_of_week=‘1-5’:表示星期一到星期五。
6)timedelta 的动态间隔,动态调整任务的执行间隔,可以在任务中动态修改 beat_schedule

from datetime import timedelta
from celery import shared_task@shared_task
def dynamic_task():print("Dynamic task executed")# 修改任务的执行间隔app.conf.beat_schedule['dynamic-task']['schedule'] = timedelta(seconds=30)app.conf.beat_schedule = {'dynamic-task': {'task': 'myapp.tasks.dynamic_task','schedule': timedelta(seconds=10),  # 初始间隔为10秒},
}
  1. flower;
    安装flower
pip install flower

启动,启动之前确保celery已经配置好并运行正常

celery -A myproject flower --port=5555 --broker=redis://localhost:6379/0
加密启动
celery -A myproject flower --port=5555 --broker=redis://localhost:6379/0 --basic_auth=user:password

配置celery,在 Celery 配置中启用事件发送功能,在 myproject/celery.py 文件中添加以下配置:

app.conf.update(worker_send_task_events=True,  # 启用任务事件发送task_send_sent_event=True,    # 启用任务发送事件
)

在浏览器中访问 http://127.0.0.1:5555/,即可看到 Flower 的监控界面

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/898465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

组态王Kingview配置为OPCUA服务器的一些问题处理

一、问题描述 1、组态王【运行配置】界面没有【服务配置】的选项,无法将组态王Kingview配置为OPCUA服务器; 2、点击组态王【运行配置界面】的【服务配置】选项弹窗警告提示【试图执行的操作不受支持】,如下图所示: 二、问题分析 …

模块二 单元4 安装AD+DC

模块二 单元4 安装ADDC 两个任务: 1.安装AD活动目录 2.升级当前服务器为DC域控制器 安装前的准备工作: 确定你要操作的服务器系统(Windows server 2022); 之前的服务器系统默认是工作组的模式workgroup模式&#xff08…

VMware主机换到高配电脑,高版本系统的问题

原来主机是i3 ,windows7系统,vmware 14.0,虚机系统是ubuntu 14.04。目标新机是i7 14700KF,windows11系统。原以为安装虚拟机,将磁盘文件,虚拟机配置文件拷贝过去可以直接用。 新目标主机先安装了vmware 15,运行原理虚机&#xff0…

MDG实现BP客商复杂逻辑校验的方法

引言 项目中可能常用的增强点是USMD_RULE_SERVICE来实现复杂的校验逻辑,除此之外,SAP对BP主数据还提供了以下的实现方式。 方法1-替换ERP校验类 众所周知,BP存在复杂的ERP校验,主要通过类CL_MDG_BS_FND_BP_CHECK(子…

基于springboot的教务系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 这些年随着Internet的迅速发展,我们国家和世界都已经进入了互联网大数据时代,计算机网络已经成为了整个社会以及经济发展的巨大动能,各个高校的教务工作成为了学校管理事务的重要目标和任务,因此运用互联网技术来提高教务的…

TDengine 中的流式计算

简介 TDengine 中的流计算,功能相当于简化版的 FLINK , 具有实时计算,计算结果可以输出到超级表中存储,同时也可用于窗口预计算,加快查询速度。 创建流式计算 CREATE STREAM [IF NOT EXISTS] stream_name [stream_o…

回调函数中 qsort 函数的使用

目录 一.冒泡排序 二.指针类型 void* 三. qsort 1.简介 2.研究函数参数 3.怎么用? (1)排数组,升序 (2)排序结构体 四.用冒泡排序思想,模拟实现 qsort (可排序任意类型数据) 1.函数参数设计 2.在 if (cmp( )>0) 怎么传参&#x…

电机控制常见面试问题(十四)

文章目录 一.电机信噪比二.电机零点偏移校正和极对数自适应1.零点偏移量检测​2. 极对数识别三.交流电机电流纹波怎么产生的1.电源相关因素2.电机本体特性3.​PWM逆变器谐波4.负载与环境干扰5.诊断流程建议 四.谈谈对谐波的理解1.谐波定义2.次谐波产生源3.次谐波的检测与分析4.…

系统思考—啤酒游戏经营决策沙盘模拟

再次感谢文华学院的邀请,为经纬集团管理层带来 《啤酒游戏经营决策沙盘》! 很多朋友问:“最近是不是啤酒游戏上的少了?” 其实,真正的关键不是游戏本身,而是——如何让大家真正看见复杂系统中的隐性结构。 …

排序算法实现:插入排序与希尔排序

目录 一、引言 二、代码整体结构 三、宏定义与头文件 四、插入排序函数(Insertsort) 函数作用 代码要点分析 五、希尔排序函数(ShellSort) 函数作用 代码要点分析 六、打印数组函数(PrintSort&#x…

2025-03-20 学习记录--C/C++-C 库函数 - toupper()、tolower()、 isspace()

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、C 库函数 - toupper() ⭐️ C 标准库 - <ctype.h> C 标准库的 ctype.h 头文件提供了一些函数&#xff0c;可用于测试和…

易语言模拟真人鼠标轨迹算法

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序&#xff0c;它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言&#xff0c;原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势&#xff1a; 模拟…

sparksql的Transformation与 Action操作

Transformation操作 与RDD类似的操作 map、filter、flatMap、mapPartitions、sample、 randomSplit、 limit、 distinct、dropDuplicates、describe&#xff0c;而以上这些都是企业中比较常用的&#xff0c;这里在一个文件中统一论述 val df1 spark.read.json("src/m…

微软Data Formulator:用AI重塑数据可视化的未来

在数据驱动的时代,如何快速将复杂数据转化为直观的图表是每个分析师面临的挑战。微软研究院推出的开源工具 Data Formulator,通过结合AI与交互式界面,重新定义了数据可视化的工作流。本文将深入解析这一工具的核心功能、安装方法及使用技巧,助你轻松驾驭数据之美。 一、Dat…

本地部署deepseek-r1建立向量知识库和知识库检索实践【代码】

目录 一、本地部署DS 二、建立本地知识库 1.安装python和必要的库 2.设置主目录工作区 3.编写文档解析脚本 4.构建向量数据库 三、基于DS,使用本地知识库检索 本地部署DS,其实非常简单,我写了一篇操作记录,我终于本地部署了DeepSeek-R1(图文全过程)-CSDN博客 安装…

String、StringBuffer、StringBuiler的区别

可变性 String是不可变的&#xff0c;这是因为String内部用于存储数据的char[]数组用了final关键字修饰&#xff0c;而且是private的&#xff0c;并且没有对外提供修改数组的方法。 StringBuffer和StringBuilder是可变的&#xff0c;它们内部的char数组没有用final关键字修饰。…

Certd自动化申请和部署SSL证书并配置https

服务器使用的华为云&#xff0c;之前SSL证书通过配置Cloudflare的DNS实现的&#xff0c;最近华为云备案提示需修改解析至境内华为云IP&#xff0c;若解析境外IP&#xff0c;域名无需备案&#xff0c;需注销或取消接入备案信息&#xff0c;改为使用Certd自搭建证书管理工具&…

git tag以及git

git tag 以及git 一、先说收获吧 1. git bash 在windows上 类似于linux的bash提供的shell命令行窗口&#xff0c;可以执行很多linux命令&#xff0c;cd pwd ls vim cat touch mkdir&#xff0c;还可以用正则匹配查看标签。相当于在windows上装了一个小的linux。git init myproj…

ESP8266通过AT指令配置双向透传

一、固件烧录 IO0接地后上电&#xff0c;进入烧录模式&#xff0c;烧录完成后去掉即可 二、参数配置 1、服务器端 ATCWMODE_DEF2 ATCWSAP_DEF"ESP8266","12345678",5,3 ATSAVETRANSLINK1,"192.168.4.2",9090,"UDP",8080 2、客户端…

【3D模型】【游戏开发】【Blender】Blender模型分享-狮头木雕附导入方法

导入方法&#xff1a; [Blender] 如何导入包含纹理的 .blend 模型文件 在 3D 建模和渲染工作中&#xff0c;Blender 是一款功能强大的免费开源软件。很多时候&#xff0c;我们需要导入 .blend 后缀的模型文件&#xff0c;同时确保纹理&#xff08;textures&#xff09;文件夹…