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

天水网站制作公司wordpress首页不显示页面

天水网站制作公司,wordpress首页不显示页面,php做的网站用什么后台,专业制作门户型网站Scheduled注解的作用是什么 Scheduled注解用于标记一个方法为定时任务方法。Spring 会按照指定的时间规则自动调用该方法 Scheduled(fixedRate 5000) public void doTask() {System.out.println(定时任务执行了); } 上述代码表示每隔 5 秒执行一次 doTask() 方…Scheduled注解的作用是什么 Scheduled注解用于标记一个方法为定时任务方法。Spring 会按照指定的时间规则自动调用该方法 Scheduled(fixedRate 5000) public void doTask() {System.out.println(定时任务执行了); } 上述代码表示每隔 5 秒执行一次 doTask() 方法 Scheduled注解有哪些常用的配置参数 fixedRate 固定速率执行单位是毫秒 例如Scheduled(fixedRate 5000) 表示每隔 5 秒执行一次无论上一次任务是否完成 fixedDelay固定延迟执行单位是毫秒 例如Scheduled(fixedDelay 5000) 表示上一次任务完成后延迟 5 秒再执行下一次任务 cron使用 Cron 表达式定义任务执行时间 例如Scheduled(cron 0 0/5 * * * ?) 表示每隔 5 分钟执行一次 initialDelay初始延迟时间单位是毫秒 例如Scheduled(initialDelay 10000, fixedRate 5000) 表示首次延迟 10 秒后执行之后每隔 5 秒执行一次 如何启用Shceduled注解 在配置类上添加EnableScheduling Configuration EnableScheduling public class AppConfig { } Sheduled注解的任务是单线程执行的吗 是的默认情况下Sheduled注解的任务是单线程执行的。所有任务共享一个线程池如果某个任务执行时间过长可能会阻塞其他任务的执行。 解决方案 使用Async注解将任务标记为异步执行。 自定义线程池配置 Tasksheduler 如何自定义Sheduled任务的线程池 可以通过实现 SchedulingConfigurer接口自定义任务调度器的线程池 Configuration EnableScheduling public class SchedulerConfig implements SchedulingConfigurer {Overridepublic void configureTasks(ScheduledTaskRegistrar taskRegistrar) {taskRegistrar.setScheduler(taskExecutor());}Bean(destroyMethod shutdown)public Executor taskExecutor() {return Executors.newScheduledThreadPool(10); // 自定义线程池大小} } Scheduled注解的任务可以动态修改执行时间吗 默认情况下Scheduled 注解的任务执行时间是静态的无法动态修改。如果需要动态调整任务执行时间可以使用以下方法 使用 ScheduledTaskRegistrar 通过编程方式动态注册和取消任务。 使用 Quartz 调度框架 Quartz 支持动态修改任务执行时间 Scheduled 注解的任务异常处理机制是什么 如果 Scheduled 注解的任务抛出异常默认情况下异常会被捕获并记录到日志中但不会影响其他任务的执行。 自定义异常处理 可以在任务方法内部使用 try-catch 捕获异常。 或者使用 Spring 的 ExceptionHandler 注解统一处理异常 如何避免 Scheduled 任务的重复执行 在分布式环境中多个实例可能会同时执行同一个定时任务。为了避免重复执行可以使用以下方法 分布式锁 使用 Redis 或 Zookeeper 实现分布式锁 数据库唯一约束 在任务执行前插入一条记录利用数据库的唯一约束避免重复执行 Scheduled注解的任务执行时间受系统时间影响吗 是的Scheduled 注解的任务执行时间依赖于系统时间。如果系统时间被修改可能会影响任务的执行 解决方案 使用 NTP 服务同步系统时间。 在任务逻辑中增加时间校验 同一个任务即使上一次执行还未完成只要时间到就会再次执行该任务 由于使用了异步执行当调用被 Async 注解标注的方法时该方法会在新的线程中执行调用线程不会等待其执行完成。 因此如果在方法还未执行完时再次调用该方法Spring 会再次将该任务提交到线程池中开启一个新的线程来执行该方法而不会等待上一次执行结束 Async 异步方法默认使用 Spring 创建 ThreadPoolTaskExecutor Spring 在开启异步支持后默认会使用 ThreadPoolTaskExecutor 作为线程池来执行异步任务 这个线程池的配置信息可以在 TaskExecutionAutoConfiguration 类中找到 ThreadPoolTaskExecutor的默认核心线程数为 8 默认最大队列和默认最大线程数都是 Integer.MAX_VALUE 核心线程数核心线程数是线程池始终保持的线程数量。当有新的任务提交时线程池会优先使用核心线程来执行任务。在默认配置下ThreadPoolTaskExecutor 的核心线程数为 8。最大队列当核心线程都在执行任务时新提交的任务会被放入队列中等待执行。默认情况下队列的最大容量为 Integer.MAX_VALUE这意味着队列几乎可以无限容纳任务。最大线程数当队列已满且核心线程都在执行任务时线程池会创建新的线程来执行任务但线程数不会超过最大线程数。默认情况下最大线程数为 Integer.MAX_VALUE ThreadPoolTaskExecutor创建新线程的条件是队列填满时而这样的配置队列永远不会填满 由于默认队列的最大容量为 Integer.MAX_VALUE在实际应用中队列几乎不可能被填满。因此线程池在核心线程都在执行任务时不会创建新的线程新的任务会一直被放入队列中等待执行 如果有 Async 注解标注的方法长期占用线程在核心 8 个线程数占用满了之后新的调用就会进入队列外部表现为没有执行 当被 Async 注解标注的方法执行时间很长比如进行 HTTP 长连接等待获取结果会导致核心线程一直被占用 当 8 个核心线程都被占用后新的任务会被放入队列中等待 由于队列几乎不会满线程池不会创建新的线程来执行这些任务因此从外部看起来这些新的调用就像没有执行一样 所以我们最好不要用Aync默认的ThreaPoolTaskExecutor 因为它核心线程数为8默认线程数为Integer.MAX_VALUE说明我们有了8个线程执行后我们就不会再创建线程执行了因为我们的队列是无界队列这样子明显不好
http://www.w-s-a.com/news/765795/

相关文章:

  • 比较著名的seo网站如何建设网站?
  • 如何做商业网站最火wordpress主题
  • 建设网站需要哪些软硬件条件wordpress文章页标题优化
  • 网站建设功能需求文档wordpress 1g1核1m
  • 学做窗帘要下载哪个网站用户反馈数据分析软件园
  • 宁晋网站建设多少钱产品宣传推广方式有哪些
  • delphi做网站阿里巴巴官网首页登录入口
  • 游戏网站怎么建设新建wordpress模板
  • 网络服务器是指兰州网站seo诊断
  • 怎样做投资理财网站godaddy上传网站
  • 网站建设深圳哪家好世界500强企业招聘网站
  • 如何减少网站建设中的错误温州网站公司哪家好
  • 宜章网站建设北京定制公交网站
  • 怎么让谷歌收录我的网站郑州网站建设更好
  • 在线视频网站开发方案phpaspnet网站开发实例视频
  • 正常做一个网站多少钱网站开发所遵循
  • 西部数码网站备份领英创建公司主页
  • 中山网站建设文化平台成都电商app开发
  • 无锡网站推广公司排名中国十大网站建设
  • 网站建设报价怎么差别那么大深圳开发公司网站建设
  • 京东商城网站建设方案书建设网站平台
  • 如何查询网站建设时间赤峰建网站的电话
  • 域名购买网站有哪些公司企业邮箱管理制度
  • 阿里云服务起做网站抖音seo推荐算法
  • 免费建站工具机械网站建设公司推荐
  • 怎么用自己主机做网站_如何做简单的网站
  • 阿里巴巴国际站跨境电商平台为什么有点网站打不开
  • 甘肃做网站哪家好网站开发 都包含什么语言
  • 合肥哪里有做网站的广告型网站怎么做的
  • 用dede做的网站国外免费空间哪个好