项目结构:

一个珠宝企业业务系统性能监控的实现方案。通过Python装饰器模式设计计时函数(timing_decorator),自动记录各业务模块执行耗时,并支持慢任务告警(阈值1秒)。系统包含供应链、设计、生产、质检、物流、财务、营销、销售、人事、IT等10个业务模块,采用统一日志配置,记录执行时间到business_perf.log文件。当业务函数执行超过阈值时输出警告日志,有效监控珠宝产销全流程性能。该方案实现无侵入式性能分析,适用于企业级业务系统监控场景,帮助识别优化慢业务环节。
# encoding: utf-8
# 版权所有 2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Timing Functions Pattern 计时函数模式
# Author : geovindu,Geovin Du 涂聚文.
# IDE : PyCharm 2024.3.6 python 3.11
# os : windows 10
# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j
# Datetime : 2026/7/3 20:55
# User : geovindu
# Product : PyCharm
# Project : pydesginpattern
# File : settings.py
import os
# 日志配置
LOG_LEVEL = "INFO"
LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
LOG_DATE_FMT = "%Y-%m-%d %H:%M:%S"
LOG_SAVE_PATH = os.path.join(os.getcwd(), "logs")
# 性能监控配置
PERF_LOG_PREFIX = "【珠宝性能监控】"
PERF_TIME_THRESHOLD = 1.0 # 超过1秒标记慢查询/慢业务
# encoding: utf-8
# 版权所有 2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Timing Functions Pattern 计时函数模式
# Author : geovindu,Geovin Du 涂聚文.
# IDE : PyCharm 2024.3.6 python 3.11
# os : windows 10
# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j
# Datetime : 2026/7/3 20:53
# User : geovindu
# Product : PyCharm
# Project : pydesginpattern
# File : logger.py
import logging
import os
from TimingFunctionsPattern.config.settings import LOG_LEVEL, LOG_FORMAT, LOG_DATE_FMT, LOG_SAVE_PATH
def init_global_logger():
"""
全局日志初始化,统一日志输出规则"
:return:
"""
# 创建日志目录
if not os.path.exists(LOG_SAVE_PATH):
os.makedirs(LOG_SAVE_PATH)
logging.basicConfig(
level=getattr(logging, LOG_LEVEL),
format=LOG_FORMAT,
datefmt=LOG_DATE_FMT,
handlers=[
logging.FileHandler(os.path.join(LOG_SAVE_PATH, "business_perf.log"), encoding="utf-8"),
logging.StreamHandler()
]
)
return logging.getLogger("jewelry_global_logger")
# 全局日志实例
logger = init_global_logger()
# encoding: utf-8
# 版权所有 2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Timing Functions Pattern 计时函数模式
# Author : geovindu,Geovin Du 涂聚文.
# IDE : PyCharm 2024.3.6 python 3.11
# os : windows 10
# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j
# Datetime : 2026/7/3 20:57
# User : geovindu
# Product : PyCharm
# Project : pydesginpattern
# File : timing_profiler.py
import time
import functools
from TimingFunctionsPattern.core.logger import logger
from TimingFunctionsPattern.config.settings import PERF_LOG_PREFIX, PERF_TIME_THRESHOLD
def timing_decorator(func):
"""
Profiling Pattern - Timing Functions 标准实现
无侵入式包装任意函数,自动记录执行耗时,支持慢任务告警
"""
@functools.wraps(func)
def wrapper(*args, **kwargs):
start = time.perf_counter()
try:
result = func(*args, **kwargs)
finally:
end = time.perf_counter()
cost = round(end - start, 4)
msg = f"{PERF_LOG_PREFIX} 业务函数[{func.__name__}] 执行耗时: {cost} 秒"
# 区分普通日志 / 慢任务警告
if cost >= PERF_TIME_THRESHOLD:
logger.warning(f"{msg} 【慢任务告警】耗时超过阈值{PERF_TIME_THRESHOLD}s")
else:
logger.info(msg)
return result
return wrapper
# encoding: utf-8
# 版权所有 2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Timing Functions Pattern 计时函数模式
# Author : geovindu,Geovin Du 涂聚文.
# IDE : PyCharm 2024.3.6 python 3.11
# os : windows 10
# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j
# Datetime : 2026/7/3 20:59
# User : geovindu
# Product : PyCharm
# Project : pydesginpattern
# File : supply.py
import time
from TimingFunctionsPattern.core.timing_profiler import timing_decorator
@timing_decorator
def material_purchase_check():
"""
上游供应链:黄金、钻石、宝石采购入库、品级真伪核验
:return:
"""
time.sleep(1.2)
print("✅ 原料采购核验完成:黄金99.99纯度、钻石4C质检达标,入库登记")
# encoding: utf-8
# 版权所有 2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Timing Functions Pattern 计时函数模式
# Author : geovindu,Geovin Du 涂聚文.
# IDE : PyCharm 2024.3.6 python 3.11
# os : windows 10
# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j
# Datetime : 2026/7/3 21:00
# User : geovindu
# Product : PyCharm
# Project : pydesginpattern
# File : design.py
import time
from TimingFunctionsPattern.core.timing_profiler import timing_decorator
@timing_decorator
def jewelry_draft():
"""
设计部:首饰3D建模、手绘图纸、生产工艺图输出
:return:
"""
time.sleep(0.8)
print("✅ 设计制图完成:新款首饰3D模型渲染完毕,图纸下发车间")
# encoding: utf-8
# 版权所有 2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Timing Functions Pattern 计时函数模式
# Author : geovindu,Geovin Du 涂聚文.
# IDE : PyCharm 2024.3.6 python 3.11
# os : windows 10
# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j
# Datetime : 2026/7/3 21:01
# User : geovindu
# Product : PyCharm
# Project : pydesginpattern
# File : production.py
import time
from TimingFunctionsPattern.core.timing_profiler import timing_decorator
@timing_decorator
def produce_jewelry():
"""
生产车间:切割、镶嵌、抛光、成型加工
:return:
"""
time.sleep(2.5)
print("✅ 加工生产完成:首饰毛坯镶嵌抛光完成,转入质检")
@timing_decorator
def quality_inspect():
"""
成品质检:工艺瑕疵、贵金属称重、合规检测
:return:
"""
time.sleep(0.6)
print("✅ 质检完成:无工艺缺陷,出具质检合格证书")
@timing_decorator
def product_pack():
"""
成品包装:礼盒、防伪标签、产品证书封装
:return:
"""
time.sleep(0.3)
print("✅ 包装完成:高端礼盒封装,绑定唯一防伪码")
# encoding: utf-8
# 版权所有 2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Timing Functions Pattern 计时函数模式
# Author : geovindu,Geovin Du 涂聚文.
# IDE : PyCharm 2024.3.6 python 3.11
# os : windows 10
# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j
# Datetime : 2026/7/3 21:02
# User : geovindu
# Product : PyCharm
# Project : pydesginpattern
# File : logistics.py
import time
from TimingFunctionsPattern.core.timing_profiler import timing_decorator
@timing_decorator
def goods_delivery():
"""
物流仓储:保价出库、物流面单、运输跟踪
:return:
"""
time.sleep(1.0)
print("✅ 物流完成:首饰保价出库,物流单号已同步系统")
# encoding: utf-8
# 版权所有 2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Timing Functions Pattern 计时函数模式
# Author : geovindu,Geovin Du 涂聚文.
# IDE : PyCharm 2024.3.6 python 3.11
# os : windows 10
# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j
# Datetime : 2026/7/3 21:03
# User : geovindu
# Product : PyCharm
# Project : pydesginpattern
# File : finance.py
import time
from TimingFunctionsPattern.core.timing_profiler import timing_decorator
@timing_decorator
def finance_calc_stat():
"""
财务部:原料成本核算、订单营收、发票、月度报表
:return:
"""
time.sleep(1.8)
print("✅ 财务核算完成:生产成本与销售营收统计报表生成")
# encoding: utf-8
# 版权所有 2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Timing Functions Pattern 计时函数模式
# Author : geovindu,Geovin Du 涂聚文.
# IDE : PyCharm 2024.3.6 python 3.11
# os : windows 10
# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j
# Datetime : 2026/7/3 21:05
# User : geovindu
# Product : PyCharm
# Project : pydesginpattern
# File : marketing.py
import time
from TimingFunctionsPattern.core.timing_profiler import timing_decorator
@timing_decorator
def marketing_promotion():
"""
市场部:线上投放、线下展会、品牌活动策划
:return:
"""
time.sleep(1.5)
print("✅ 营销推广完成:节日活动方案落地,广告投放上线")
# encoding: utf-8
# 版权所有 2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Timing Functions Pattern 计时函数模式
# Author : geovindu,Geovin Du 涂聚文.
# IDE : PyCharm 2024.3.6 python 3.11
# os : windows 10
# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j
# Datetime : 2026/7/3 21:05
# User : geovindu
# Product : PyCharm
# Project : pydesginpattern
# File : sales.py
import time
from TimingFunctionsPattern.core.timing_profiler import timing_decorator
@timing_decorator
def sales_customer_service():
"""
销售业务:客户洽谈、订单录入、售后维修、渠道合作
:return:
"""
time.sleep(0.9)
print("✅ 销售业务完成:客户订单确认,售后工单归档")
# encoding: utf-8
# 版权所有 2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Timing Functions Pattern 计时函数模式
# Author : geovindu,Geovin Du 涂聚文.
# IDE : PyCharm 2024.3.6 python 3.11
# os : windows 10
# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j
# Datetime : 2026/7/3 21:06
# User : geovindu
# Product : PyCharm
# Project : pydesginpattern
# File : hr_admin.py
import time
from TimingFunctionsPattern.core.timing_profiler import timing_decorator
@timing_decorator
def hr_admin_work():
"""
人事行政:考勤、招聘、办公用品、制度管理
:return:
"""
time.sleep(0.7)
print("✅ 人事行政完成:月度考勤统计,行政物资盘点")
# encoding: utf-8
# 版权所有 2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Timing Functions Pattern 计时函数模式
# Author : geovindu,Geovin Du 涂聚文.
# IDE : PyCharm 2024.3.6 python 3.11
# os : windows 10
# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j
# Datetime : 2026/7/3 21:07
# User : geovindu
# Product : PyCharm
# Project : pydesginpattern
# File : it_ops.py
import time
from TimingFunctionsPattern.core.timing_profiler import timing_decorator
@timing_decorator
def it_system_ops():
"""
IT运维:业务系统巡检、数据备份、网络安全、版本更新
:return:
"""
time.sleep(1.1)
print("✅ IT运维完成:全业务数据库备份,服务器巡检正常")
# encoding: utf-8
# 版权所有 2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Timing Functions Pattern 计时函数模式
# Author : geovindu,Geovin Du 涂聚文.
# IDE : PyCharm 2024.3.6 python 3.11
# os : windows 10
# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j
# Datetime : 2026/7/3 21:09
# User : geovindu
# Product : PyCharm
# Project : pydesginpattern
# File : business_flow_service.py
from TimingFunctionsPattern.business import (
material_purchase_check,
jewelry_draft,
produce_jewelry,
quality_inspect,
product_pack,
goods_delivery,
finance_calc_stat,
marketing_promotion,
sales_customer_service,
hr_admin_work,
it_system_ops
)
class JewelryBusinessFlowService:
"""
珠宝全业务流程编排服务
职责:按真实行业顺序串联全链路业务,对外统一提供流程入口
"""
def run_full_production_flow(self):
"""完整产销全链路:原料→设计→生产→质检→包装→物流"""
print("======= 启动珠宝产销主流程 =======\n")
material_purchase_check()
jewelry_draft()
produce_jewelry()
quality_inspect()
product_pack()
goods_delivery()
print("\n======= 产销主流程执行结束 =======\n")
def run_backend_support_flow(self):
"""后台支撑流程:财务、营销、销售、人事、IT"""
print("======= 启动后台职能支撑流程 =======\n")
finance_calc_stat()
marketing_promotion()
sales_customer_service()
hr_admin_work()
it_system_ops()
print("\n======= 后台支撑流程执行结束 =======\n")
def run_all_business(self):
"""一次性执行全公司所有业务模块"""
self.run_full_production_flow()
self.run_backend_support_flow()
调用:
# encoding: utf-8
# 版权所有 2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Timing Functions Pattern 计时函数模式
# Author : geovindu,Geovin Du 涂聚文.
# IDE : PyCharm 2024.3.6 python 3.11
# os : windows 10
# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j
# Datetime : 2026/7/3 21:11
# User : geovindu
# Product : PyCharm
# Project : pydesginpattern
# File : TimingFunctionsBll.py
from TimingFunctionsPattern.service import JewelryBusinessFlowService
from TimingFunctionsPattern.core.logger import logger
class TimingFunctionsBll(object):
"""
"""
def demo(self):
"""
:return:
"""
logger.info("===== 珠宝企业性能监控系统启动 =====")
flow_service = JewelryBusinessFlowService()
# 执行全业务流程
flow_service.run_all_business()
logger.info("===== 所有业务流程执行完毕 =====")
输出:

845

被折叠的 条评论
为什么被折叠?



