本次更新点:更新前:MRA instanceid为0更新后:MRA instanceid为9,部分存量私有化客户会使用1,此时需要根据instanceid=1&&pstn_number来判断MRA终端类型预计更新时间 日影响范围:1、Rest API 获取参会成员列表 接口2、Rest API 查询实时会中成员列表 接口3、Rest API 会议控制管理(会中管理) 相关接口4、Webhook事件消息修改方法:1、对instanceid 枚举值增加9的定义,表示MRA终端类型;更新后识别MRA终端类型的条件为:instanceid=9 or (instanceid=1&&pstn_number)。 2、调用会议控制管理(会中管理)相关接口时,传入的instanceid需要从获取参会成员列表接口、查询实时会中成员列表接口或者Webhook事件消息中获取,不能随意设置。
//cloud.tencent.com/developer/article/2475831,对mbr转gpt,还要不丢数据,在操作之前先做快照,并记录机器和磁盘的对应关系,以及机器系统内部的disk instanceid 一句话命令只能显示disk instanceid、磁盘序号,研究了下没有直接的命令可以一键三连输出disk instanceid、磁盘序号、盘符,只能用powershell代码段来搞,分享如下: # 获取所有磁盘驱动器的信息 -PSProvider FileSystem | Where-Object { $_.Free -ge 0 }|ft -auto $driveInfo1 $driveInfo2 只能显示disk instanceid
} @GetMapping("/retry") public ResultDTO<Void> retryInstance(String appId, Long instanceId) instanceInfo = fetchInstanceInfo(instanceId); if (! ", instanceId, appId); try { InstanceInfoDO instanceInfo = fetchInstanceInfo(instanceId (instanceId)) { return genTemporaryLogFile(instanceId); } return instanceId=" + instanceId; log.info("[InstanceLog-{}] downloadURL for appId[{}]: {}", instanceId
,不在会中的可以是创建者不校验instanceid 设置联席主持人 https://cloud.tencent.com/document/product/1095/57946 被操作者:校验会中存在该instanceid instanceid被操作者:校验该instanceid,对该端生效 静音用户 https://cloud.tencent.com/document/product/1095/57948 操作者:在会中的存在该 instanceid,不在会中的可以是创建者不校验instanceid被操作者:校验传入的端是否在会中,未在会中报错。 操作者:在会中的存在该instanceid,不在会中的可以是创建者不校验instanceid被操作者:校验会中存在该instanceid,则多端都生效 结束会议 https://cloud.tencent.com /document/product/1095/67794 操作者:在会中的存在该instanceid,不在会中的可以是创建者不校验instanceid被操作者:校验会中存在该instanceid,则多端都生效
, instanceId, e); Thread.currentThread().interrupt(); if (timeoutFlag.get , instanceId, e); res = new ProcessResult(false, e.toString()); } create time:{},queue time:{},use time:{},result:{}", instanceId, createTime, taskStartTime - createTime , instanceId); if (CollectionUtils.isEmpty(allTask) || allTask.size() > 1) ", instanceId, disconnectedPTs); if (taskPersistenceService.updateLostTasks(instanceId
appID是指应用程序的名称,instanceID是一个实例的唯一ID.在AWS cloud中, instanceID就是指实例的id,但在其他的数据中心,instanceID是实例的hostname。 操作 HTTP action 注册一个新的应用实例 POST /eureka/v2/apps/appID 删除一个应用实例 DELETE /eureka/v2/apps/appID/instanceID 发送应用实例心跳 PUT /eureka/v2/apps/appID/instanceID 查询所有的实例 GET /eureka/v2/apps 查询指定appID下所有实例 GET /eureka /instanceID 使实例退出服务 PUT /eureka/v2/apps/appID/instanceID/status? value=OUT_OF_SERVICE 将实例恢复使用(删除覆盖) DELETE/eureka/v2/apps/appID/instanceID/status?
) { instanceService.stopInstance(appId,instanceId); return ResultDTO.success(null); instanceInfo = fetchInstanceInfo(instanceId); if (! ", instanceId, appId); try { InstanceInfoDO instanceInfo = fetchInstanceInfo(instanceId (instanceId)) { return genTemporaryLogFile(instanceId); } return instanceId=" + instanceId; log.info("[InstanceLog-{}] downloadURL for appId[{}]: {}", instanceId
createTime; /** * 任务实例ID,使用频率过高,从 InstanceInfo 提取出来单独保存一份 */ protected final long instanceId ", instanceId, taskStartTime, taskEndTime); return; } Thread workerThread , instanceId); res = new ProcessResult(false, "Processor return null"); } ,instanceId,LightTaskTrackerManager.currentTaskTrackerSize()); return; } 来创建和执行LightTaskTracker(通过ConcurrentHashMap来维护instanceId与LightTaskTracker的关系,避免重复执行)。
", instanceId, taskId); List<TaskResult> taskResults = workerRuntime.getTaskPersistenceService ().getAllTaskResult(instanceId, task.getSubInstanceId()); try { switch (executeType ", instanceId, taskId, e); } TaskStatus status = processResult.isSuccess() ? , Long subInstanceId) { try { return execute(() -> taskDAO.getAllTaskResult(instanceId 方法根据instanceId, subInstanceId查询task_info表select task_id, status, result from task_info where instance_id
/processor/runnable/HeavyProcessorRunnable.java private void handleLastTask(String taskId, Long instanceId ", instanceId, taskId); List<TaskResult> taskResults = workerRuntime.getTaskPersistenceService ().getAllTaskResult(instanceId, task.getSubInstanceId()); try { switch (executeType ", instanceId, taskId, e); } TaskStatus status = processResult.isSuccess() ? 方法根据instanceId, subInstanceId查询task_info表select task_id, status, result from task_info where instance_id
", instanceId); } // 3. -{}] TaskTracker has left the world(using {}), bye~", instanceId, sw.stop()); // 4. ", instanceId); } else { log.error("[TaskTracker-{}] create root task failed. ", instanceId); throw new PowerJobException("create root task failed for instance: " + instanceId ", instanceId, disconnectedPTs); if (taskPersistenceService.updateLostTasks(instanceId
", instanceId, taskContext.getTaskId(), taskContext.getTaskName(), e); processResult = new ", instanceId, subInstanceId, taskBriefInfo.getLastReportTime(), reportTime, taskId ", instanceId, subInstanceId, taskId, taskBriefInfo.getStatus().getValue(), newStatus "" : result; boolean updateResult = taskPersistenceService.updateTaskStatus(instanceId, taskId ", instanceId, subInstanceId, e); } finally { segmentLock.unlock(lockId); }
id of instance * @return 文件名称 */ protected abstract String getScriptName(Long instanceId) , String processorInfo) throws IOException { String scriptPath = WORKER_DIR + getScriptName(instanceId () { return SH_SHELL; }}ShellProcessor的getScriptName是基于shell_%d.sh和instanceId生成的;其getRunCommand ) { return String.format("powershell_%d.ps1", instanceId); } @Override protected String () { return "python"; }}PythonProcessor的getScriptName是基于python_%d.py和instanceId生成,其getRunCommand
, OmsLogHandler omsLogHandler) { super(logConfig); this.instanceId = instanceId; , instanceId); } } //......} ", instanceId, e); } // 删除本地数据库数据 try { instanceId2LastReportTime.remove (instanceId)); log.info("[InstanceLog-{}] delete local instanceLog successfully ) { String path = genLogFilePath(instanceId, true); int lockId = ("stFileLock-" + instanceId
, instanceId); res = new ProcessResult(false, "Processor return null"); } ", instanceId, subInstanceId, taskId); taskBriefInfo = new TaskBriefInfo(taskId, ", instanceId, subInstanceId, taskBriefInfo.getLastReportTime(), reportTime, ", instanceId, subInstanceId, taskId); return; } ", instanceId, disconnectedPTs); if (taskPersistenceService.updateLostTasks(instanceId
", instanceId, e); } } }catch (Exception e) { log.warn ", instanceId, e); } // 删除本地数据库数据 try { instanceId2LastReportTime.remove (instanceId); CommonUtils.executeWithRetry0(() -> localInstanceLogRepository.deleteByInstanceId (instanceId)); log.info("[InstanceLog-{}] delete local instanceLog successfully ", instanceId, e); } } InstanceLogService的sync方法先持久化到本地文件,再将文件推送到 MongoDB 小结 GridFsManager
的备份文件 @retry(wait_fixed=10000,stop_max_attempt_number=10) def downfullbackupfile(db_instanceid): print db_instanceid startdate = start_date enddate = end_date clt = client.AcsClient 的备份文件 @retry(wait_fixed=10000,stop_max_attempt_number=10) def downbinlogfile(db_instanceid): ('json') request.set_action_name('DescribeBinlogFiles') request.set_DBInstanceId(db_instanceid filename) downfile(url,filename) return 1 #需要备份的db_instanceid
In AWS cloud, instanceID is the instance id of the instance and in other data centers, it is the hostname HTTP Code: 200 on success 发送应用实例心跳 PUT /eureka/v2/apps/appID/instanceID 成功【HTTP Code: 204 】 instanceID GET /eureka/v2/apps/appID/instanceID 响应内容: JSON/XML 成功【HTTP Code: 200 】 查询特定的instanceID GET /eureka /v2/instances/instanceID 响应内容: JSON/XML 成功【HTTP Code: 200 】 使实例停止服务 PUT /eureka/v2/apps/appID/instanceID value=OUT_OF_SERVICE 补充一个常见的手动服务下线接口 DELETE /eureka/v2/apps/appID/instanceID/status?
", instanceId, task.getTaskId(), task.getTaskName()); return; } // 2. ", instanceId, t); lethal = true; lethalReason = ExceptionUtils.getMessage(t) ", instanceId, newTask.getTaskId(), newTask.getTaskName(), e); } // 2. ", instanceId, newTask.getTaskId(), newTask.getTaskName(), threadPool.getQueue(). ", instanceId, taskContext.getTaskId(), taskContext.getTaskName(), e); processResult = new
= data.Instances[0].InstanceId; console.log("Created instance", instanceId); // 存储实例id并设置状态 context.succeed (instanceId); }); }; 由于启动EC2的过程是一个异步过程,所以我们需要记录相关的服务器启动信息,并定义另一接口接收Game Server在服务就绪后返回的回执信息,代码如下。 = event.instanceId; var region = event.region; var publicIp = event.publicIp; var version = event.version ; ... // 检查instanceId并在线更新实例状态 }; 同时,这种回执接口的API(包括其他API)都可以考虑使用Amazon API Gateway服务进行部署。 = message.Trigger.Dimensions[0].value; console.log("Need to terminate the server:", instanceId); //