首页 文章 精选 留言 我的

精选列表

搜索[文档系统],共10025篇文章
优秀的个人博客,低调大师

ShowDoc v2.7.1 发布,IT 团队的在线 API 文档、技术文档工具

更新内容: 1、推出Mac客户端,下载链接:https://www.showdoc.cc/clients 2、可以给成员只授权项目的某个目录,适合更精细化的权限控制。 3、当用户编辑页面的时候将自动锁定,防止其他人修改覆盖 4、当markdown的超链接指向本项目的时候,将在当前项目展开(之前是新窗口打开) 5、优化前端代码,拥抱eslint代码规范 更新步骤请参考请参考手册的升级安装部分:https://www.showdoc.cc/help?page_id=13732 关于Showdoc的详细介绍,请看:https://www.showdoc.cc/help

优秀的个人博客,低调大师

ApiBoot - ApiBoot Quartz 使用文档

ApiBoot Quartz ApiBoot内部集成了Quartz,提供了数据库方式、内存方式的进行任务的存储,其中数据库方式提供了分布式集群任务调度,任务自动平滑切换执行节点。 引用ApiBoot Quartz 在pom.xml配置文件内添加,如下配置: <!--ApiBoot Quartz--> <dependency> <groupId>org.minbox.framework</groupId> <artifactId>api-boot-starter-quartz</artifactId> </dependency> 备注:如果使用ApiBoot Quartz的内存方式,仅需要添加上面的依赖即可。 相关配置 参数名称 是否必填 默认值 描述 api.boot.quartz.job-store-type 否 memory 任务存储源方式,默认内存方式 api.boot.quartz.scheduler-name 否 scheduler 调度器名称 api.boot.quartz.auto-startup 否 true 初始化后是否自动启动调度程序 api.boot.quartz.startup-delay 否 0 初始化完成后启动调度程序的延迟。 api.boot.quartz.wait-for-jobs-to-complete-on-shutdown 否 false 是否等待正在运行的作业在关闭时完成。 api.boot.quartz.overwrite-existing-jobs 否 false 配置的作业是否应覆盖现有的作业定义。 api.boot.quartz.properties 否 Quartz自定义的配置属性,具体参考quartz配置 api.boot.quartz.jdbc 否 配置数据库方式的Jdbc相关配置 内存方式 ApiBoot Quartz在使用内存方式存储任务时,不需要做配置调整。 数据库方式 需要在application.yml配置文件内修改api.boot.quartz.job-store-type参数,如下所示: api: boot: quartz: # Jdbc方式 job-store-type: jdbc Quartz所需表结构 Quartz的数据库方式内部通过DataSource获取数据库连接对象来进行操作数据,所操作数据表的表结构是固定的,ApiBoot把Quartz所支持的所有表结构都进行了整理,访问Quartz支持数据库建表语句列表查看,复制执行对应数据库语句即可。 创建任务类 我们只需要让新建类集成QuartzJobBean就可以完成创建一个任务类,如下简单示例: /** * 任务定义示例 * 与Quartz使用方法一致,ApiBoot只是在原生基础上进行扩展,不影响原生使用 * <p> * 继承QuartzJobBean抽象类后会在项目启动时会自动加入Spring IOC * * @author:恒宇少年 - 于起宇 * <p> * DateTime:2019-03-28 17:26 * Blog:http://blog.yuqiyu.com * WebSite:http://www.jianshu.com/u/092df3f77bca * Gitee:https://gitee.com/hengboy * GitHub:https://github.com/hengboy */ public class DemoJob extends QuartzJobBean { /** * logger instance */ static Logger logger = LoggerFactory.getLogger(DemoJob.class); @Override protected void executeInternal(JobExecutionContext context) throws JobExecutionException { logger.info("定时任务Job Key : {}", context.getJobDetail().getKey()); logger.info("定时任务执行时所携带的参数:{}", JSON.toJSONString(context.getJobDetail().getJobDataMap())); //...处理逻辑 } } 任务参数 在任务执行时传递参数是必须的,ApiBoot Quartz提供了比较方便的传递方式,不过最终Quartz会把传递的值都会转换为String类型数据。 任务Key默认值 ApiBoot Quartz的newJob方法所创建的定时任务,如果在不传递Job Key参数时,会默认使用UUID随机字符串作为Job Key以及Trigger Key。 自定义任务开始时间 任务开始时间可以通过startAtTime方法进行设置,在不设置的情况下,任务创建完成后会立刻执行。 Cron 表达式任务 创建Cron类型任务如下所示: String jobKey = apiBootQuartzService.newJob(ApiBootCronJobWrapper.Context() .jobClass(DemoJob.class) .cron("0/5 * * * * ?") .param( ApiBootJobParamWrapper.wrapper().put("param", "测试")) .wrapper()); Cron 表达式任务由ApiBootCronJobWrapper类进行构建。 上面的DemoJob任务类将会每隔5秒执行一次。 Loop 重复任务 Loop循环任务,当在不传递重复执行次数时,不进行重复执行,仅仅执行一次,如下所示: String jobKey = apiBootQuartzService.newJob( ApiBootLoopJobWrapper.Context() // 参数 .param( ApiBootJobParamWrapper.wrapper() .put("userName", "恒宇少年") .put("userAge", 24) ) // 每次循环的间隔时间,单位:毫秒 .loopIntervalTime(2000) // 循环次数 .repeatTimes(5) // 开始时间,10秒后执行 .startAtTime(new Date(System.currentTimeMillis() + 10000)) // 任务类 .jobClass(DemoJob.class) .wrapper() ); Loop 任务由ApiBootLoopJobWrapper类进行构建。 上面的定时任务将会重复执行5次,连上自身执行的一次也就是会执行6次,每次的间隔时间为2秒,在任务创建10秒后进行执行。 Once 一次性任务 Once一次性任务,任务执行一次会就会被自动释放,如下所示: Map paramMap = new HashMap(1); paramMap.put("paramKey", "参数值"); String jobKey = apiBootQuartzService.newJob( ApiBootOnceJobWrapper.Context() .jobClass(DemoJob.class) // 参数 .param( ApiBootJobParamWrapper.wrapper() .put("mapJson", JSON.toJSONString(paramMap)) ) // 开始时间,2秒后执行 .startAtTime(new Date(System.currentTimeMillis() + 2000)) .wrapper() ); Once 任务由ApiBootOnceJobWrapper类进行构建。 在参数传递时可以是对象、集合,不过需要进行转换成字符串才可以进行使用。 暂停任务执行 任务在执行过程中可以进行暂停操作,通过ApiBoot Quartz提供的pauseJob方法就可以很简单的实现,当然暂停时需要传递Job Key,Job Key可以从创建任务方法返回值获得。 暂停任务如下所示: // 暂停指定Job Key的任务 apiBootQuartzService.pauseJob(jobKey); // 暂停多个执行中任务 apiBootQuartzService.pauseJobs(jobKey,jobKey,jobKey); 恢复任务执行 任务执行完暂停后,如果想要恢复可以使用如下方式: // 恢复指定Job Key的任务执行 apiBootQuartzService.resumeJob(jobKey); // 恢复多个暂停任务 apiBootQuartzService.resumeJobs(jobKey,jobKey,jobKey); 修改Cron表达式 修改Cron表达式的场景如下: 已创建 & 未执行 已创建 & 已执行 修改方法如下所示: // 修改执行Job Key任务的Cron表达式 apiBootQuartzService.updateJobCron(jobKey, "0/5 * * * * ?"); 删除任务 想要手动释放任务时可以使用如下方式: // 手动删除指定Job Key任务 apiBootQuartzService.deleteJob(jobKey); // 手动删除多个任务 apiBootQuartzService.deleteJobs(jobKey,jobKey,jobKey); 删除任务的顺序如下: 暂停触发器 移除触发器 删除任务本章源码地址:https://github.com/hengboy/api-boot/tree/master/api-boot-samples/api-boot-sample-quartz

优秀的个人博客,低调大师

Apache Storm 官方文档 —— Metrics

Storm 提供了一个可以获取整个拓扑中所有的统计信息的度量接口。Storm 内部通过该接口可以跟踪各类统计数字:executor 和 acker 的数量、每个 bolt 的平均处理时延、worker 使用的最大堆容量等等,这些信息都可以在 Nimbus 的 UI 界面中看到。 Metric 类型 使用 Metrics 只需要实现一个接口方法:getValueAndReset,在方法中可以查找汇总值、并将该值复位为初始值。例如,在 MeanReducer 中就实现了通过运行总数除以对应的运行计数的方式来求取均值,然后将两个值都重新设置为 0。 Storm 提供了以下几种 metric 类型: AssignableMetric— 将 metric 设置为指定值。此类型在两种情况下有用:1. metric 本身为外部设置的值;2. 你已经另外计算出了汇总的统计值。 CombinedMetric— 可以对 metric 进行关联更新的通用接口。 CountMetric— 返回 metric 的汇总结果。可以调用incr()方法来将结果加一;调用incrBy(n)方法来将结果加上给定值。 MultiCountMetric— 返回包含一组 CountMetric 的 HashMap ReducedMetric MeanReducer— 跟踪由它的reduce()方法提供的运行状态均值结果(可以接受Double、Integer、Long等类型,内置的均值结果是Double类型)。MeanReducer 确实是一个相当棒的家伙。 MultiReducedMetric— 返回包含一组 ReducedMetric 的 HashMap Metric Consumer 构建自定义 metric 内建的 Metric builtin_metrics.clj为内建的 metrics 设置了数据结构,以及其他框架组件可以用于更新的虚拟方法。metrics 本身是在回调代码中实现计算的 — 请参考executor.clj中的ack-spout-msg的例子。 转载自并发编程网 - ifeve.com

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册