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. 资源券申请业务流程
