|
|
7 mēneši atpakaļ | |
|---|---|---|
| .. | ||
| browser | 8 mēneši atpakaļ | |
| excel_tools | 7 mēneši atpakaļ | |
| manager | 7 mēneši atpakaļ | |
| models | 8 mēneši atpakaļ | |
| tasks | 7 mēneši atpakaļ | |
| tools | 8 mēneši atpakaļ | |
| readme.md | 7 mēneši atpakaļ | |
ssh mrh@sv-v2
cd ~/program/redis
dc up -d
# mahui4228@gmail.com
$env:CONFIG_PATH="G:\code\amazone\copywriting_production\config\dp_conf\9321_worker.yaml";celery -A src.tasks.crawl_asin_save_task worker --loglevel=info --hostname=9321@%h
# mahui6188@gmail.com U*
$env:CONFIG_PATH="G:\code\amazone\copywriting_production\config\dp_conf\9322_worker.yaml";celery -A src.tasks.crawl_asin_save_task worker --loglevel=info --hostname=9322@%h
youka570023@gmail.com U** gg: 7m
$env:CONFIG_PATH="G:\code\amazone\copywriting_production\config\dp_conf\9323_worker.yaml";celery -A src.tasks.crawl_asin_save_task worker --loglevel=info --hostname=9323@%h
celery -A config.celery flower
python -m src.manager.cli_tasks --help
python -m src.manager.cli_tasks purge-queue --force
将各个任务拆分到不同文件是遵循软件工程中模块化设计原则的典型实践,这样做主要有以下核心价值:
职责清晰划分
save_tasks.py 专注数据采集与存储extract_tasks.py 专注数据解析与加工变更影响域控制
save_tasks.pyextract_tasks.py按需加载依赖
# save_tasks.py 可能需要的依赖
from storage_lib import S3Client
# extract_tasks.py 需要的依赖
from nlp_lib import TextAnalyzer
启动性能提升
独立伸缩能力
# 单独部署存储类Worker
celery -A tasks.save_tasks worker --loglevel=info -Q save_queue
# 单独部署解析类Worker
celery -A tasks.extract_tasks worker --loglevel=info -Q extract_queue
--concurrency)--max-memory-per-child)资源隔离优势
降低合并冲突
变更追溯明确
权限隔离
# save_tasks.py 需要写存储权限
AWS_ACCESS_KEY = os.getenv('STORAGE_KEY')
# extract_tasks.py 只需要读权限
AWS_READ_ONLY_KEY = os.getenv('READ_KEY')
精准测试定位
# 测试保存功能
pytest tests/test_save_tasks.py
# 测试解析功能
pytest tests/test_extract_tasks.py
某电商爬虫系统的演进过程:
| 阶段 | 代码结构 | 问题表现 |
|---|---|---|
| V1.0 | 所有任务在tasks.py |
1. 添加新任务频繁引发回归BUG 2. 内存占用持续走高 |
| V2.0 | 按领域拆分为3个文件 | 1. 任务失败率下降40% 2. 扩容成本降低35% |
以下场景可考虑合并:
通过这种模块化设计,既能保持小项目的灵活性,又能为系统演进预留充足空间,是平衡当下效率与长期维护成本的理性选择。