当前位置: 首页 > news >正文

如何做网站站内搜索wordpress 图片放大

如何做网站站内搜索,wordpress 图片放大,怎么在百度做广告,市场调查报告主要功能和场景 柔性调温策略#xff1a;这个类主要用于管理一个温度调节流程#xff0c;通过不同的策略#xff08;如策略1和策略2#xff09;来调节温度#xff0c;确保设备或环境中的温度达到预设的目标。 紧急停止机制#xff1a;在流程执行过程中#xff0c;如果需…主要功能和场景 柔性调温策略这个类主要用于管理一个温度调节流程通过不同的策略如策略1和策略2来调节温度确保设备或环境中的温度达到预设的目标。 紧急停止机制在流程执行过程中如果需要紧急停止可以通过设置一个标志来立即停止所有正在进行的任务。 定时任务管理使用Java的ScheduledExecutorService来管理定时任务如定期检查温度、执行特定的温度调节策略等。 Redis集成使用Redisson客户端与Redis数据库交互存储和检索紧急停止的状态。 代码详细描述 类结构 使用Slf4j注解来自动生成日志记录器。使用RequiredArgsConstructor注解来自动注入对象 常量定义 STRATEGY_DURATION定义了策略的持续时间这里是5分钟减去30秒。EMERGENCY_STOPPED_KEY在Redis中存储紧急停止状态的键。EMERGENCY_STOPPED和RESTART_STOPPED分别代表紧急停止和重启的状态。 方法 startProcessChain(Long planId)启动整个流程首先检查是否需要紧急停止然后开始执行柔性调温策略1。applyFlexibleTempStrategy1(Long planId)和applyFlexibleTempStrategy2(Long planId)分别实现策略1和策略2包括下发温度调节指令和召测命令以及根据召测结果调整策略。waitFor5MinutesAfterStrategy1(Long planId)和waitFor10MinutesAfterStrategy2(Long planId)在策略1和策略2之后等待一定时间然后执行下一步。applyTargetPower(Long planId)在策略2之后执行目标功率控制。waitFor10MinutesBeforeStop(Long planId)在停止前等待10分钟。emergencyStop(Long planId)和restart(Long planId)分别用于紧急停止流程和重启流程。isEmergencyStopped(Long planId)和setEmergencyStopped(Long planId)用于检查和设置紧急停止状态。 使用场景 这个类适用于需要精确控制温度的场景如数据中心、实验室或工业生产环境其中温度的精确控制对于设备的正常运行至关重要。通过这个流程管理器可以确保在各种情况下都能有效地调节温度同时提供紧急停止机制以应对突发情况。 在ProcessManager类中每个流程都创建了一个ScheduledExecutorService实例通过Executors.newScheduledThreadPool(1)创建了一个大小为1的线程池。这种设计有几个好处 资源控制通过限制线程池的大小为1可以确保每个流程在其生命周期内只使用一个线程。这有助于防止资源过度消耗特别是在高并发环境中可以避免因创建过多线程而导致的系统资源耗尽。 任务串行执行由于线程池大小为1所有提交给该线程池的任务将按顺序串行执行。这意味着一个流程中的所有任务都是顺序执行的不会并发执行这有助于简化任务之间的同步和数据依赖问题。 简化同步在某些情况下流程中的任务可能需要访问共享资源或状态串行执行可以减少或消除对这些资源进行复杂同步的需求因为任务不会并发地访问这些资源。 避免竞态条件在单线程环境中不会出现竞态条件race conditions因为任务是按顺序执行的。这对于确保流程的正确性和可预测性非常重要。 易于管理单线程池使得任务的管理和监控更加简单。例如如果需要取消所有任务只需调用scheduler.shutdown()即可。 适合定时任务ScheduledExecutorService特别适合执行定时任务如周期性任务或延迟任务。通过使用单线程池可以确保这些任务按照预定的时间表执行而不会因为线程争用而产生时间偏差。 总之为每个流程创建一个单线程的ScheduledExecutorService可以提供一个简单、可控且高效的方式来管理流程中的定时任务同时确保流程的稳定性和可预测性。 import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.hutool.core.text.CharSequenceUtil; import org.redisson.api.RBucket; import org.redisson.api.RedissonClient; import org.springframework.stereotype.Component;import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit;/*** 能力认定流程manager*/ Slf4j Component RequiredArgsConstructor public class ProcessManager {/*** 5分钟单位为毫秒策略持续时间30秒执行一次减少30秒是由于第一次进入默认执行一次召测*/private static final long STRATEGY_DURATION 5 * 60 * 1000 - 30000;/*** Redis中存储紧急停止值*/private static final String EMERGENCY_STOPPED_KEY IOT:EMERGENCY:STOPPED:VAL:;/*** 紧急停止值*/private static final String EMERGENCY_STOPPED 1;/*** 重启*/private static final String RESTART_STOPPED 0;/*** Redisson客户端*/private final RedissonClient redissonClient;/*** 启动任务*/public void startProcessChain(Long planId) {// 否紧急停止if (isEmergencyStopped(planId)) {return;}ScheduledExecutorService scheduler Executors.newScheduledThreadPool(1);log.info(Step 0 startProcessChain with task ID: planId);// 立即执行柔性调温策略1scheduler.schedule(() - applyFlexibleTempStrategy1(planId), 0, TimeUnit.SECONDS);// 立马取消当前任务scheduler.shutdown();}/*** 柔性调温策略1*/private void applyFlexibleTempStrategy1(Long planId) {// 紧急停止if (isEmergencyStopped(planId)) {return;}log.info(Step 1 下发遥调指令task ID: planId);// 下发遥调指令String tempValue 18;// 下发遥调任务失败流程结束if (packageCommandTempIssuance()) {return;}long startTime System.currentTimeMillis();// 整个流程持续五分钟30秒执行一次ScheduledExecutorService scheduler Executors.newScheduledThreadPool(1);scheduler.scheduleAtFixedRate(() - {// 紧急停止if (isEmergencyStopped(planId)) {return;}log.info(Step 1 下发召测命令 task ID: planId);int unConformNum packageCallForTest();// 不满足数量0时表示都满足18° ± 0.5°立即执行下一步if (unConformNum 0) {log.info(Step 1 策略1条件已满足执行下一步等待 task ID: planId);// 满足条件立马执行:等待五分钟策略scheduler.schedule(() - waitFor5MinutesAfterStrategy1(planId), 0, TimeUnit.SECONDS);// 立马取消当前任务scheduler.shutdown();}long elapsedTime System.currentTimeMillis() - startTime;// 5分钟内所有通道温度未达到18° ± 0.5°任务终止if (unConformNum ! 0 elapsedTime STRATEGY_DURATION) {log.info(Step 1 下发召测命令不满足要求:planId:{},不满足数量{} , planId, unConformNum);emergencyStop(planId);scheduler.shutdown();}}, 0, 30, TimeUnit.SECONDS);}/*** 柔性调温策略1之后等待五分钟配置码值动态获取*/private void waitFor5MinutesAfterStrategy1(Long planId) {// 紧急停止if (isEmergencyStopped(planId)) {return;}String value 5;log.info(After step 1 waiting for value minutes for task ID: planId);ScheduledExecutorService scheduler Executors.newScheduledThreadPool(1);// 五分钟之后执行applyFlexibleTempStrategy2scheduler.schedule(() - applyFlexibleTempStrategy2(planId), Long.parseLong(value),TimeUnit.MINUTES);// 立马取消当前任务scheduler.shutdown();}/*** 柔性调温策略2*/private void applyFlexibleTempStrategy2(Long planId) {// 紧急停止if (isEmergencyStopped(planId)) {return;}log.info(Step 2 策略2下发遥调指令 task ID: planId);// 下发遥调指令String tempValue 26;// 下发遥调任务失败流程结束if (packageCommandTempIssuance()) {emergencyStop(planId);return;}long startTime System.currentTimeMillis();// 整个流程持续五分钟ScheduledExecutorService scheduler Executors.newScheduledThreadPool(1);scheduler.scheduleAtFixedRate(() - {// 紧急停止if (isEmergencyStopped(planId)) {return;}log.info(Step 2 策略2下发召测指令 task ID: planId);int unConformNum packageCallForTest();// 不满足数量0时表示都满足26° ± 0.5°立即执行下一步if (unConformNum 0) {log.info(Step 2 策略2条件已满足执行下一步等待 task ID: planId);// 满足条件立马执行:等待五分钟策略scheduler.schedule(() - waitFor10MinutesAfterStrategy2(planId), 0, TimeUnit.SECONDS);// 立马取消当前任务scheduler.shutdown();}long elapsedTime System.currentTimeMillis() - startTime;// 5分钟内所有通道温度未达到26° ± 0.5°任务终止if (unConformNum ! 0 elapsedTime STRATEGY_DURATION) {log.info(Step 2 下发召测命令不满足要求:planId:{},不满足数量{} , planId, unConformNum);emergencyStop(planId);// 立马取消当前任务scheduler.shutdown();}}, 0, 30, TimeUnit.SECONDS);}/*** 柔性调温策略2之后等10分钟配置码值动态获取*/private void waitFor10MinutesAfterStrategy2(Long planId) {if (isEmergencyStopped(planId)) {return;}String value 10;log.info(After step 2 Waiting for value minutes task: planId);ScheduledExecutorService scheduler Executors.newScheduledThreadPool(1);// 等10分钟目标功率控制scheduler.schedule(() - applyTargetPower(planId), Long.parseLong(value), TimeUnit.MINUTES);// 立马取消当前任务scheduler.shutdown();}/*** 目标功率控制*/private void applyTargetPower(Long planId) {if (isEmergencyStopped(planId)) {return;}log.info(Step 3 目标功率控制 task ID: planId);// 下发遥调任务失败流程结束if (packageCommandTempIssuance()) {emergencyStop(planId);return;}ScheduledExecutorService scheduler Executors.newScheduledThreadPool(1);// 立即执行停止前等待10分钟scheduler.schedule(() - waitFor10MinutesBeforeStop(planId), 0,TimeUnit.SECONDS);// 立马取消当前任务scheduler.shutdown();}/*** 停止前等待10分钟配置码值动态获取*/private void waitFor10MinutesBeforeStop(Long planId) {// 紧急停止if (isEmergencyStopped(planId)) {return;}String tempValue 10;log.info(After step 3 wait for tempValue minutes task ID: planId);ScheduledExecutorService scheduler Executors.newScheduledThreadPool(1);scheduler.schedule(() - {log.info(waitFor10MinutesBeforeStop step 4 stop task ID: planId);// 立马取消当前任务scheduler.shutdown();}, Long.parseLong(tempValue), TimeUnit.MINUTES);}/*** 紧急停止*/public void emergencyStop(Long planId) {log.info(Emergency stopping the process with task ID: planId);setEmergencyStopped(planId);}/*** 重启一键能力认证流程*/public void restart(Long planId) {// 1:true,0:falseredissonClient.getBucket(EMERGENCY_STOPPED_KEY planId).set(RESTART_STOPPED);}/*** 是否紧急停止*/private boolean isEmergencyStopped(Long planId) {RBucket String bucket redissonClient.getBucket(EMERGENCY_STOPPED_KEY planId);String isEmergencyStopped bucket.get();return isEmergencyStopped ! null CharSequenceUtil.equals(isEmergencyStopped, EMERGENCY_STOPPED);}/*** 设置紧急停止值*/private void setEmergencyStopped(Long planId) {// 1:true,0:falseredissonClient.getBucket(EMERGENCY_STOPPED_KEY planId).set(EMERGENCY_STOPPED);}/*** 下发遥调指令*/private boolean packageCommandTempIssuance() {// 下发遥调指令示意代码return true;}/*** 下发召测命令** return 不满足数量*/private Integer packageCallForTest() {// 下召测命令,拿内机数据示意代码return 0;} }
文章转载自:
http://www.morning.xwqxz.cn.gov.cn.xwqxz.cn
http://www.morning.cknsx.cn.gov.cn.cknsx.cn
http://www.morning.fpkpz.cn.gov.cn.fpkpz.cn
http://www.morning.yrgb.cn.gov.cn.yrgb.cn
http://www.morning.dbfj.cn.gov.cn.dbfj.cn
http://www.morning.wcyr.cn.gov.cn.wcyr.cn
http://www.morning.ncrk.cn.gov.cn.ncrk.cn
http://www.morning.thrtt.cn.gov.cn.thrtt.cn
http://www.morning.lgmgn.cn.gov.cn.lgmgn.cn
http://www.morning.lzttq.cn.gov.cn.lzttq.cn
http://www.morning.qydgk.cn.gov.cn.qydgk.cn
http://www.morning.dqcpm.cn.gov.cn.dqcpm.cn
http://www.morning.gybnk.cn.gov.cn.gybnk.cn
http://www.morning.ylzdx.cn.gov.cn.ylzdx.cn
http://www.morning.bqyb.cn.gov.cn.bqyb.cn
http://www.morning.ljllt.cn.gov.cn.ljllt.cn
http://www.morning.tcfhs.cn.gov.cn.tcfhs.cn
http://www.morning.qxlxs.cn.gov.cn.qxlxs.cn
http://www.morning.tclqf.cn.gov.cn.tclqf.cn
http://www.morning.rbnj.cn.gov.cn.rbnj.cn
http://www.morning.bksbx.cn.gov.cn.bksbx.cn
http://www.morning.eronghe.com.gov.cn.eronghe.com
http://www.morning.grzpc.cn.gov.cn.grzpc.cn
http://www.morning.wwjft.cn.gov.cn.wwjft.cn
http://www.morning.ghphp.cn.gov.cn.ghphp.cn
http://www.morning.mgtmm.cn.gov.cn.mgtmm.cn
http://www.morning.rqqlp.cn.gov.cn.rqqlp.cn
http://www.morning.cxryx.cn.gov.cn.cxryx.cn
http://www.morning.bbjw.cn.gov.cn.bbjw.cn
http://www.morning.xgjhy.cn.gov.cn.xgjhy.cn
http://www.morning.zfqr.cn.gov.cn.zfqr.cn
http://www.morning.mqfhy.cn.gov.cn.mqfhy.cn
http://www.morning.nnttr.cn.gov.cn.nnttr.cn
http://www.morning.rlksq.cn.gov.cn.rlksq.cn
http://www.morning.zrhhb.cn.gov.cn.zrhhb.cn
http://www.morning.kcdts.cn.gov.cn.kcdts.cn
http://www.morning.kmkpm.cn.gov.cn.kmkpm.cn
http://www.morning.zgpgl.cn.gov.cn.zgpgl.cn
http://www.morning.dmzzt.cn.gov.cn.dmzzt.cn
http://www.morning.gmyhq.cn.gov.cn.gmyhq.cn
http://www.morning.pqhgn.cn.gov.cn.pqhgn.cn
http://www.morning.xcjbk.cn.gov.cn.xcjbk.cn
http://www.morning.lwnb.cn.gov.cn.lwnb.cn
http://www.morning.btypn.cn.gov.cn.btypn.cn
http://www.morning.jytrb.cn.gov.cn.jytrb.cn
http://www.morning.ctfh.cn.gov.cn.ctfh.cn
http://www.morning.zpstm.cn.gov.cn.zpstm.cn
http://www.morning.zmzdx.cn.gov.cn.zmzdx.cn
http://www.morning.bryyb.cn.gov.cn.bryyb.cn
http://www.morning.lyrgp.cn.gov.cn.lyrgp.cn
http://www.morning.rldph.cn.gov.cn.rldph.cn
http://www.morning.mrfjr.cn.gov.cn.mrfjr.cn
http://www.morning.xjmyq.com.gov.cn.xjmyq.com
http://www.morning.mtqqx.cn.gov.cn.mtqqx.cn
http://www.morning.lgmty.cn.gov.cn.lgmty.cn
http://www.morning.sxbgc.cn.gov.cn.sxbgc.cn
http://www.morning.yjfzk.cn.gov.cn.yjfzk.cn
http://www.morning.sxcwc.cn.gov.cn.sxcwc.cn
http://www.morning.gqmhq.cn.gov.cn.gqmhq.cn
http://www.morning.lthgy.cn.gov.cn.lthgy.cn
http://www.morning.rhfh.cn.gov.cn.rhfh.cn
http://www.morning.xpmhs.cn.gov.cn.xpmhs.cn
http://www.morning.zlhzd.cn.gov.cn.zlhzd.cn
http://www.morning.nckjk.cn.gov.cn.nckjk.cn
http://www.morning.mlnby.cn.gov.cn.mlnby.cn
http://www.morning.ppdr.cn.gov.cn.ppdr.cn
http://www.morning.jxwhr.cn.gov.cn.jxwhr.cn
http://www.morning.qtzwh.cn.gov.cn.qtzwh.cn
http://www.morning.krklj.cn.gov.cn.krklj.cn
http://www.morning.lptjt.cn.gov.cn.lptjt.cn
http://www.morning.tsnq.cn.gov.cn.tsnq.cn
http://www.morning.gcdzp.cn.gov.cn.gcdzp.cn
http://www.morning.fpbj.cn.gov.cn.fpbj.cn
http://www.morning.gnwse.com.gov.cn.gnwse.com
http://www.morning.xqbbc.cn.gov.cn.xqbbc.cn
http://www.morning.drbwh.cn.gov.cn.drbwh.cn
http://www.morning.dmwbs.cn.gov.cn.dmwbs.cn
http://www.morning.bscsp.cn.gov.cn.bscsp.cn
http://www.morning.tndxg.cn.gov.cn.tndxg.cn
http://www.morning.qklff.cn.gov.cn.qklff.cn
http://www.tj-hxxt.cn/news/279644.html

相关文章:

  • linux建设网站制作网站管理系统
  • 创建一个网站要多少钱东道设计公司难进吗
  • 益阳网站建设详细教程电子商务企业网站建设实训报告
  • 里水九江网站建设想做无货源电商怎么入手
  • 有效的网站优化网站建设基础百度百科
  • 深圳网站建设 利科技织梦网站首页空白
  • 网站建设策划书提纲百度竞价规则
  • 招远 两学一做 网站类似WordPress的Python
  • 新动力网站建设成都动力无限 网站 差
  • 网站开发设计内容wordpress图片集
  • 抓取wordpress站点用户公司网站一般多少钱
  • 多少钱一个网站dw网页制作源代码
  • 什么叫做营销型网站邯郸网站建设小霖
  • 看设计案例的有哪些网站网站模板 自适应
  • 做投票的网站苏州姑苏区网站建设
  • 视频网站logo怎么做做留言的网站
  • 宁波网站建设公司推荐哪家淘宝店铺推广渠道有哪些
  • 做视频网站视频短片呼和浩特网站网站建设
  • 盐城网站开发怎么样如何优化网站图片
  • 山东做网站公司北京建设网站合同下载
  • 宁波手机建站模板wordpress图片介绍
  • 攀枝花建设工程质量监督站投诉网站网站建设定做
  • 浙江天奥建设集团网站seo关键词排名优化报价
  • 建站平台入口重庆报考网
  • 郑州做网站公司汉狮网钢材公司网站建设
  • 自己做网站难吗网站建设公司 南宁
  • 门户网站建设依据桂林小学网站建设
  • 网站内链技巧邯郸营销网站建设公司
  • 网站流量 用什么表示wordpress免费汽车配件企业主题
  • 福建省建设工程注册管理中心网站wordpress购物插件