Elastic-Job-Cloud 微信h5牛牛房卡网站开发源码下载分析
环境要求
1、微信h5牛牛房卡网站开发(Q1687054422) 下载
2、Eclipse IDE for Java EE Mars 2 (4.5.2) 下载
3、Apache Maven 3.3+ 下载
4、MySql 5.7+ 下载
云作业App配置类
CloudAppConfiguration,云作业App配置。实现代码如下:
public final class CloudAppConfiguration {
/**
* 应用名
*/
private final String appName;
/**
* 应用包地址
*/
private final String appURL;
/**
* 应用启动脚本
*/
private final String bootstrapScript;
/**
* cpu 数量
*/
private double cpuCount = 1;
/**
* 内存 大小
*/
private double memoryMB = 128;
/**
* 每次执行作业时是否从缓存中读取应用。禁用则每次执行任务均从应用仓库下载应用至本地
*/
private boolean appCacheEnable = true;
/**
* 常驻作业事件采样率统计条数,默认不采样全部记录。
* 为避免数据量过大,可对频繁调度的常驻作业配置采样率,即作业每执行N次,才会记录作业执行及追踪相关数据
*/
private int eventTraceSamplingCount;
}
|
- 在 Elastic-Job-Lite 里,打包作业,部署到服务器里启动。而在 Elastic-Job-Cloud 里,打包作业上传至可下载的地址。作业被调度时,Mesos 会从
appURL
下载应用包, -
操作云作业App配置
云作业App配置有多种操作:
- 添加 / 更新 / 删除
- 开启 / 禁用
有两种方式进行操作,以添加举例子:
-
调用 HTTP 接口:
curl -l -H "Content-type: application/json" -X POST -d '{"appName":"foo_app","appURL":"http://app_host:8080/yourJobs.gz","cpuCount":0.1,"memoryMB":64.0,"bootstrapScript":"bin/start.sh","appCacheEnable":true,"eventTraceSamplingCount":0}' http://elastic_job_cloud_host:8899/api/app -
运维平台
运维平台是对调用 HTTP 接口的UI封装,实现代码如下:
// CloudAppRestfulApi@Path("/app")public final class CloudAppRestfulApi {/*** 注册应用配置.** @param appConfig 应用配置*/@POST@Consumes(MediaType.APPLICATION_JSON)public void register(final CloudAppConfiguration appConfig) {Optional<CloudAppConfiguration> appConfigFromZk = appConfigService.load(appConfig.getAppName());if (appConfigFromZk.isPresent()) {throw new AppConfigurationException("app '%s' already existed.", appConfig.getAppName());}appConfigService.add(appConfig);}}// CloudAppConfigurationService.java/*** 添加云作业APP配置.** @param appConfig 云作业App配置对象*/public void add(final CloudAppConfiguration appConfig) {regCenter.persist(CloudAppConfigurationNode.getRootNodePath(appConfig.getAppName()), CloudAppConfigurationGsonFactory.toJson(appConfig));}// CloudAppConfigurationNode.JAVApublic final class CloudAppConfigurationNode {public static final String ROOT = "/config/app";private static final String APP_CONFIG = ROOT + "/%s"; // %s = ${APP_NAME}}- CloudAppRestfulApi,云作业应用的REST API,实现了云作业App配置的多种操作的 HTTP 接口。
- CloudAppConfigurationService,云作业App配置服务,实现了云作业应用的存储功能。
- 调用
AppConfigService#add(...)
方法,存储 CloudAppConfiguration 到注册中心( Zookeeper )的持久数据节点${NAMESPACE}/config/app/${APP_NAME}
,JSON 格式化对象。使用 zkClient 查看如下: