中坤服务各功能设计说明

1. 定时任务

中坤服务中有一些计量、月度报表等定时任务,基于linux环境下crontab工具实现。为了支持定时任务的分布式部署,中坤基于数据库实现了一个定时任务状态锁功能,实现分布式部署节点定时任务的同步,先拿到锁的节点的定时任务执行。定时任务状态锁定义和实现app global中。

定时任务功能说明执行周期脚本
计量计费计量云主机、云硬盘、对象存储、站点监控等资源的使用量,计费和扣费。每天9点/scripts/timedelta_metering.py
月度报表每月统计用户的资源、各资源用量、消费点数等数据,产生月度报表并邮件方式发送给用户每月28日17点/scripts/run_generate_and_email_month_report.py
日志时序统计监控中,各日志单元每个定时周期日志数量统计每分钟/scripts/run_log_site_req_num.py
安全扫描安全扫描功能中,把中坤的扫描任务提交到扫描器,从扫描器查询扫描任务的结果保存到中坤的扫描任务每3分钟/scripts/run_scan_process.py
存储桶月度统计报表模块,统计各存储桶月度容量、增量、对象数量、计费金额等数据每月28日12点/scripts/run_bucket_monthly_stats.py
告警邮件通知告警模块,已发邮件的方式把告警信息通知相关用户每分钟/apps/app_alert/scripts/alert_email_notification.py
流量图表元素更新网管流量模块,定时更新流量图表元素每小时/apps/app_net_flow/scripts/netflow_update_element.py
云主机权限同步EVCloud兜底中坤服务中云主机的权限同步到EVCloud,同步失败记录重试每2分钟/scripts/run_failed_vo_perm_to_evcloud.py
服务请求量统计portal门户的需求。一体云和对象存储服务总请求数统计,通过监控日志单元统计日志数量累加。
统计那些监控单元在配置文件中的配置项PORTAL_REQ_NUM_LOKI_SITES_MAP中。
每小时/scripts/update_service_req_num.py


中坤实现了一个定时任务管理命令crontabtask。项目配置文件中通过配置项“CRONTABJOBS”配置了定时任务列表信息;命令默认会操作linux系统crontab的配置文件/var/spool/cron/root。命令用法如下。

```
# 命令形式,comment是任务的标签,comment不是必须的,可以通过comment操作部分任务
python3 manage.py crontabtask subcommand comment

crontabtask add           # 添加所有任务到crontab的配置文件
crontabtask add task1     # 添加所有注释以"task1"开头的所有任务
crontabtask show          # 列举当前所有任务
crontabtask remove        # 移除所有任务
crontabtask remove task1  # 移除所有注释以"task1"开头的所有任务
crontabtask update        # 更新所有有修改的定时任务(已在crontab定时任务文件中,并且与项目定时任务配置信息不同)
crontabtask update task1  # 更新所有注释以"task1"开头的有修改的任务
```

2. 管理员云主机订购交付任务

此功能模块主要用于简化管理员帮用户创建云主机资源的过程,管理员提交云主机的订购任务,会创建一个订单、后续会自动为此订单发放资源券,并支付订单,然后完成订购资源的创建交付。任务中会记录任务状态、任务进度、订单编号和发放的资源券信息。管理员可以通过任务列举接口查看各任务的执行状态和结果,执行失败的任务可以触发重试。

任务状态字段“status”,表示任务当前的状态:

  • wait:待执行
  • in-progress:执行中
  • failed:失败
  • completed:完成
  • cancelled:作废

任务进程字段“progress”,表示任务当前已完成的业务进度,业务过程顺序如下:

  • ordered:已订购;已创建订单
  • coupon:已发资源券;已为订单发放资源券
  • paid:已支付;订单已支付完成
  • partdeliver:部分交付;多资源订购时,部分资源已交付
  • delivered:已交付;订购资源交付完成

3. 资源券申请业务流程

Recent Comments

您尚未收到任何评论。