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

目前做网站流行的是什么Wordpress前端用户头像

目前做网站流行的是什么,Wordpress前端用户头像,注册个网站多少钱,百度关键词优化教程常使用的定时任务 一、 linux自带的定时任务 1、crontab 有这样一个需求#xff1a;我们使用Java写一个工具jar包在系统空闲的时候去采集已经部署在Linux系统上的项目的一 些数据#xff0c;可以使用 linux 系统的 crontab。 运行crontab -e#xff0c;可以编辑定时器我们使用Java写一个工具jar包在系统空闲的时候去采集已经部署在Linux系统上的项目的一 些数据可以使用 linux 系统的 crontab。 运行crontab -e可以编辑定时器然后加入如下命令 0 2 * * * /usr/local/java/jdk1.8/bin/java -jar /data/app/tool.jar /logs/tool.log 这样就可以在每天凌晨2点 定时执行tool.jar 程序并且把日志输出到 tool.log 文件中。 当然你也可以把后面的执行java程序的命令写成shell脚本更方便维护。 使用这种定时任务支持方便修改定时规则有界面可以统一管理配置的各种定时脚本。 crontab命令的基本格式如下 crontab [参数] [文件名]如果没有指定文件名则接收键盘上输入的命令并将它载入到 crontab 。 参数功能对照表如下 参数功能-u指定用户-e编辑某个用户的crontab文件内容-l显示某个用户的crontab文件内容-r删除某用户的crontab文件-i删除某用户的crontab文件时需确认 以上参数如果没有使用 -u 指定用户则默认使用的当前用户。 通过 crontab -e 命令编辑文件内容具体语法如下 [分] [小时] [日期] [月] [星期] 具体任务其中 分表示多少分钟范围0-59 小时表示多少小时范围0-23 日期表示具体在哪一天范围1-31 月表示多少月范围1-12 星期表示多少周范围0-70和7都代表星期日 还有一些特殊字符比如 * 代表如何时间比如 *1*** 表示每天凌晨1点执行。 / 代表每隔多久执行一次比如 */5 **** 表示每隔5分钟执行一次。 , 代表支持多个比如 10 7,9,12 *** 表示在每天的7、9、12点10分各执行一次。 - 代表支持一个范围比如 10 7-9 *** 表示在每天的7、8、9点10分各执行一次。 此外顺便说一下 crontab 需要 crond 服务支持 crond 是 linux 下用来周期地执行某种任务的一个守护进程 在安装 linux 操作系统后默认会安装 crond 服务工具且 crond 服务默认就是自启动的。 crond 进程每分钟会 定期检查是否有要执行的任务如果有则会自动执行该任务。 可以通过以下命令操作相关服务 service crond status // 查看运行状态 service crond start //启动服务 service crond stop //关闭服务 service crond restart //重启服务 service crond reload //重新载入配置使用 crontab 的优缺点 优点方便修改定时规则支持一些较复杂的定时规则通过文件可以统一管理配好的各种定时脚本。 缺点如果定时任务非常多不太好找而且必须要求操作系统是 linux 否则无法执行。 二、jdk自带的定时任务 1、Thread Thread 类真的能做定时任务如果你看过一些定时任务框架的源码你最后会发现它们的底层也会使用 Thread 类。 实现这种定时任务的具体代码如下 package com.schedule;public class ThreadTest {public static void init() {new Thread(() - {while (true) {try {System.out.println(doSameThing);Thread.sleep(1000 * 60 * 5);} catch (Exception e) {System.out.println(e);}}}).start();}public static void main(String[] args) {init();} }使用 Thread 类可以做最简单的定时任务在 run 方法中有个 while 的死循环当然还有其他方式执行我们自 己的任务。有个需要特别注意的地方是需要用 try…catch 捕获异常否则如果出现异常就直接退出循环下 次将无法继续执行了。 这种方式做的定时任务只能周期性执行不能支持定时在某个时间点执行。 此外该线程可以定义成守护线程 在后台默默执行就好。 使用场景比如项目中有时需要每隔10分钟去下载某个文件或者每隔5分钟去读取模板文件生成静态html页面等 等一些简单的周期性任务场景。 使用 Thread 类的优缺点 优点这种定时任务非常简单学习成本低容易入手对于那些简单的周期性任务是个不错的选择。 缺点不支持指定某个时间点执行任务不支持延迟执行等操作功能过于单一无法应对一些较为复杂的场 景。 2、Timer Timer 类是jdk专门提供的定时器工具用来在后台线程计划执行指定任务在 java.util包下要跟 TimerTask一起配合使用。 Timer 类其实是一个任务调度器它里面包含了一个 TimerThread 线程在这个线程中无限循环从 TaskQueue 中获取 TimerTask 该类实现了Runnable接口调用其 run 方法就能异步执行定时任务。我们需要继承 TimerTask 类实现它的 run 方法在该方法中加上自己的业务逻辑。 实现这种定时任务的具体代码如下 public class TimerTest {public static void main(String[] args) {Timer timer new Timer();timer.schedule(new TimerTask() {Overridepublic void run() {System.out.println(doSomething);}},2000,1000);} }先实例化一个 Timer 类然后调用它的 schedule 方法在该方法中实例化 TimerTask 类业务逻辑写在 run 方 法中。 schedule 方法最后的两次参数分别表示 延迟时间 和 间隔时间 单位是毫秒。上面例子中设置的定时 任务是每隔1秒执行一次延迟2秒执行。 主要包含6个方法 schedule(TimerTask task, Date time) , 指定任务task在指定时间time执行 schedule(TimerTask task, long delay) , 指定任务task在指定延迟delay后执行 schedule(TimerTask task, Date firstTime,long period) ,指定任务task在指定时间firstTime执行 后进行重复固定延迟频率peroid的执行 schedule(TimerTask task, long delay, long period) , 指定任务task 在指定延迟delay 后进行重复 固定延迟频率peroid的执行 scheduleAtFixedRate(TimerTask task,Date firstTime,long period) , 指定任务task在指定时间 firstTime执行后进行重复固定延迟频率peroid的执行 scheduleAtFixedRate(TimerTask task, long delay, long period) , 指定任务task 在指定延迟delay 后进行重复固定延迟频率peroid的执行 不过使用 Timer 实现定时任务有以下问题 由于 Timer 是单线程执行任务如果其中一个任务耗时非常长会影响其他任务的执行。 如果 TimerTask 抛出 RuntimeException Timer会停止所有任务的运行。 使用 Timer 类的优缺点 优点非常方便实现多个周期性的定时任务并且支持延迟执行还支持在指定时间之后支持功能还算强 大。 缺点如果其中一个任务耗时非常长会影响其他任务的执行。并且如果TimerTask 抛出 RuntimeExceptionTimer 会停止所有任务的运行所以阿里巴巴开发者规范中不建议使用它。 3、ScheduledExecutorService ScheduledExecutorService 是JDK1.5版本引进的定时任务该类位于 java.util.concurrent并发包下。 ScheduledExecutorService 是基于多线程的设计的初衷是为了解决 Timer 单线程执行多个任务之间会互相影 响的问题。 它主要包含4个方法 schedule(Runnable command,long delay,TimeUnit unit) 带延迟时间的调度只执行一次调度之 后可通过Future.get()阻塞直至任务执行完毕。 schedule(CallableV callable,long delay,TimeUnit unit) 带延迟时间的调度只执行一次调 度之后可通过Future.get()阻塞直至任务执行完毕并且可以获取执行结果。 scheduleAtFixedRate 表示以固定频率执行的任务如果当前任务耗时较多超过定时周期period则当 前任务结束后会立即执行。 scheduleWithFixedDelay 表示以固定延时执行任务延时是相对当前任务结束为起点计算开始时间。 实现这种定时任务的具体代码如下 package com.schedule;import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit;public class ScheduleExecutorTest {public static void main(String[] args) {ScheduledExecutorService scheduledExecutorService Executors.newScheduledThreadPool(5);scheduledExecutorService.scheduleAtFixedRate(() - {System.out.println(doSomething);}, 1000, 1000, TimeUnit.MILLISECONDS);} }调用 ScheduledExecutorService 类的 scheduleAtFixedRate 方法实现周期性任务每隔1秒钟执行一次每次延 迟1秒再执行。 这种定时任务是阿里巴巴开发者规范中用来替代 Timer 类的方案对于多线程执行周期性任务是个不错的选 择。 ScheduledExecutorService的优缺点 优点基于多线程的定时任务多个任务之间不会相关影响支持周期性的执行任务并且带延迟功能。 缺点不支持一些较复杂的定时规则。 三、spring支持的定时任务 1、spring task spring task 是 spring3 以上版本自带的定时任务实现定时任务的功能时需要引入 spring-context 包目前它 支持 xml 和注解两种方式。 由于xml方式太古老了我们以springboot项目中注解方式为例。 1.1 pom依赖 第一步在pom.xml文件中引入 spring-context 相关依赖。 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.5.6/versionrelativePath//parentgroupIdcom.schedule/groupIdartifactIdspring-task/artifactIdversion0.0.1-SNAPSHOT/versionnamespring-task/namedescriptionspring-task/descriptionpropertiesjava.version1.8/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactId/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project1.2 启动类 第二步在springboot启动类上加上 EnableScheduling 注解。 package com.schedule;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableScheduling;EnableScheduling SpringBootApplication public class SpringBootScheduleApplication {public static void main(String[] args) {SpringApplication.run(SpringBootScheduleApplication.class, args);}}1.3 定时任务 第三步使用 Scheduled 注解定义定时规则。 package com.schedule;import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component;Component public class SchedulingService {Scheduled(cron ${sue.spring.task.cron})public void fun() {System.out.println(doSomething);} }1.4 配置文件 sue.spring.task.cron*/10 * * * * ?这样就能每隔10秒执行一次fun方法了。 1.5 测试 doSomething doSomething doSomething doSomething doSomething doSomething1.6 cron规则 spring4以上的版本中cron表达式包含6个参数 [秒] [分] [时] [日期] [月] [星期]还支持几个常用的特殊符号 * 表示任何时间触发任务 , 表示指定的时间触发任务 - 表示一段时间内触发任务 / 表示从哪一个时刻开始每隔多长时间触发一次任务。 ? 表示用于月中的天和周中的天两个子表达式表示不指定值。 cron表达式参数具体含义 1、秒取值范围0-59支持 * 、 , 、 - 、 / 。 2、分取值范围0-59支持 * 、 , 、 - 、 / 。 3、时取值范围0-23支持 * 、 , 、 - 、 / 。 4、日期取值范围1-31支持* 、 , 、 - 、 / 。 5、月取值范围1-12支持 * 、 , 、 - 、 / 。 6、星期取值范围1-71代表星期天6代表星期六其他的以此类推。支持 * 、 , 、 - 、 / ?。比秒 多了?表示如果指定的星期触发了则配置的日期变成无效。 常见cron表达式使用举例 0 0 0 1 * ? 每月1号零点执行 0 0 2 * * ? 每天凌晨2点执行 0 0 2 * * ? 每天凌晨2点执行 0 0/5 11 * * ? 每天11点-11点55分每隔5分钟执行一次 0 0 18 ? * WED 每周三下午6点执行 spring task先通过ScheduledAnnotationBeanPostProcessor类的processScheduled方法解析和收集 Scheduled 注解中的参数包含cron表达式。 然后在ScheduledTaskRegistrar类的afterPropertiesSet方法中默认初始化一个单线程的 ThreadPoolExecutor 执行任务。 使用 spring task 的优缺点 优点spring框架自带的定时功能springboot做了非常好的封装开启和定义定时任务非常容易支持复杂 的 cron 表达式可以满足绝大多数单机版的业务场景。单个任务时当前次的调度完成后再执行下一次任 务调度。 缺点默认单线程如果前面的任务执行时间太长对后面任务的执行有影响。不支持集群方式部署不能做 数据存储型定时任务。 2、spring quartz quartz 是 OpenSymphony 开源组织在 Job scheduling 领域的开源项目是由java开发的一个开源的任务日程管 理系统。 quartz能做什么 作业调度调用各种框架的作业脚本例如shell,hive等。 定时任务在某一预定的时刻执行你想要执行的任务。 架构图如下 quartz包含的主要接口如下 Scheduler 代表调度容器一个调度容器中可以注册多个JobDetail和Trigger。 Job 代表工作即要执行的具体内容。 JobDetail 代表具体的可执行的调度程序Job是这个可执行程调度程序所要执行的内容。 JobBuilder 用于定义或构建JobDetail实例。 Trigger 代表调度触发器决定什么时候去调。 TriggerBuilder 用于定义或构建触发器。 JobStore 用于存储作业和任务调度期间的状态。 我们还是以 springboot 集成 quartz 为例。 2.1 pom依赖 第一步在pom.xml文件中引入 quartz 相关依赖。 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.5.6/versionrelativePath//parentgroupIdcom.schedule/groupIdartifactIdspring-quartz/artifactIdversion0.0.1-SNAPSHOT/versionnamespring-quartz/namedescriptionspring-quartz/descriptionpropertiesjava.version1.8/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-quartz/artifactId/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project2.2 定时任务 第二步创建真正的定时任务执行类该类继承 QuartzJobBean 。 package com.schedule;import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.springframework.scheduling.quartz.QuartzJobBean;public class QuartzTestJob extends QuartzJobBean {Overrideprotected void executeInternal(JobExecutionContext context) throws JobExecutionException {String userName (String) context.getJobDetail().getJobDataMap().get(userName);System.out.println(userName: userName);} }2.3 调度程序和调度器 第三步创建调度程序 JobDetail 和调度器 Trigger 。 package com.schedule;import org.quartz.*; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class QuartzConfig {Value(${sue.spring.quartz.cron})private String testCron;/*** 创建定时任务*/Beanpublic JobDetail quartzTestDetail() {JobDetail jobDetail JobBuilder.newJob(QuartzTestJob.class).withIdentity(quartzTestDetail, QUARTZ_TEST).usingJobData(userName, susan).storeDurably().build();return jobDetail;}/*** 创建触发器*/Beanpublic Trigger quartzTestJobTrigger() {//每隔5秒执行一次CronScheduleBuilder cronScheduleBuilder CronScheduleBuilder.cronSchedule(testCron);//创建触发器Trigger trigger TriggerBuilder.newTrigger().forJob(quartzTestDetail()).withIdentity(quartzTestJobTrigger, QUARTZ_TEST_JOB_TRIGGER).withSchedule(cronScheduleBuilder).build();return trigger;} }2.4 配置文件 第四步在 application.properties 文件中配置参数 sue.spring.quartz.cron*/5 * * * * ?这样就能每隔5秒执行一次QuartzTestJob类的executeInternal方法了。 CronTrigger配置格式: [秒] [分] [小时] [日] [月] [周] [年]spring quartz 跟 spring task 的 cron 表达式规则基本一致只是 spring4 以上的版本去掉了后面的 年 而 quartz 的 CronTrigger 的 年 是非必填的这里我就不做过多介绍了。 2.5 启动类 package com.schedule;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication public class SpringBootScheduleApplication {public static void main(String[] args) {SpringApplication.run(SpringBootScheduleApplication.class, args);}}2.6 测试 userName:susan userName:susan userName:susan userName:susan userName:susan userName:susan userName:susan使用 spring quartz 的优缺点 优点默认是多线程异步执行单个任务时在上一个调度未完成时下一个调度时间到时会另起一个线程 开始新的调度多个任务之间互不影响。支持复杂的 cron 表达式它能被集群实例化支持分布式部署。 缺点相对于spring task实现定时任务成本更高需要手动配置QuartzJobBean 、 JobDetail和 Trigger 等。 需要引入了第三方的 quartz包有一定的学习成本。不支持并行调度不支持失败处理策略和动态分片的策 略等。 四、分布式定时任务 1、xxl-job xxl-job 是大众点评许雪里开发的一个分布式任务调度平台其核心设计目标是开发迅速、学习简单、轻量 级、易扩展。现已开放源代码并接入多家公司线上产品线开箱即用。 xxl-job 框架对 quartz 进行了扩展使用 mysql 数据库存储数据并且内置jetty作为 RPC服务调用。 主要特点如下 有界面维护定时任务和触发规则非常容易管理。 能动态启动或停止任务 支持弹性扩容缩容 支持任务失败报警 支持动态分片 支持故障转移 Rolling实时日志 支持用户和权限管理 管理界面 整体架构图如下 使用quartz架构图如下 项目实战 xxl-admin 管理后台部署和mysql脚本执行等这些前期准备工作我就不过多介绍了这些更偏向于运维的事情。 第一步在pom.xml文件中引入 xxl-job 相关依赖。 dependencygroupIdcom.xuxueli/groupIdartifactIdxxl-job-core/artifactId /dependency第二步在 application.properties 文件中配置参数 xxl.job.admin.address: http://localhost:8088/xxl-job-admin/ xxl.job.executor.appname: xxl-job-executor-sample xxl.job.executor.port: 8888 xxl.job.executor.logpath: /data/applogs/xxl-job/第三步创建HelloJobHandler类继承 IJobHandler 类 JobHandler(value helloJobHandler) Component public class HelloJobHandler extends IJobHandler {Overridepublic ReturnTString execute(String param) {System.out.println(XXL-JOB, Hello World.);return SUCCESS;} }这样定时任务就配置好了。 建议把定时任务单独部署到另外一个服务中跟api服务分开。根据我以往的经验job大部分情况下会对数据做 批量操作如果操作的数据量太大可能会对服务的内存和cpu资源造成一定的影响。 使用 xxl-job 的优缺点 优点有界面管理定时任务支持弹性扩容缩容、动态分片、故障转移、失败报警等功能。它的功能非常强 大很多大厂在用可以满足绝大多数业务场景。 缺点和 quartz 一样通过数据库分布式锁来控制任务不能重复执行。在任务非常多的情况下有一些性 能问题。 2、elastic-job elastic-job 是当当网开发的弹性分布式任务调度系统功能丰富强大采用zookeeper实现分布式协调实现任务 高可用以及分片。它是专门为高并发和复杂业务场景开发。 elastic-job 目前是 apache 的 shardingsphere 项目下的一个子项目官网地址 http://shardingsphere.apache.org/elasticjob/ elastic-job 在2.x之后出了两个产品线 Elastic-Job-Lite 和 Elastic-Job-Cloud 而我们一般使用Elastic-Job-Lite 就能够满足需求。Elastic-Job-Lite定位为轻量级无中心化解决方案使用jar包的形式提供分布式任务的协调服务 外部仅依赖于Zookeeper。 主要特点如下 分布式调度协调 弹性扩容缩容 失效转移 错过执行作业重触发 作业分片一致性保证同一分片在分布式环境中仅一个执行实例 自诊断并修复分布式不稳定造成的问题 支持并行调度 整体架构图 项目实战 第一步在pom.xml文件中引入 elastic-job 相关依赖。 dependencygroupIdcom.dangdang/groupIdartifactIdelastic-job-lite-core/artifactId /dependency dependencygroupIdcom.dangdang/groupIdartifactIdelastic-job-lite-spring/artifactId /dependency第二步增加ZKConfig类配置 zookeeper Configuration ConditionalOnExpression(${zk.serverList}.length() 0) public class ZKConfig {Beanpublic ZookeeperRegistryCenter registry(Value(${zk.serverList}) String serverList,Value(${zk.namespace}) String namespace) {return new ZookeeperRegistryCenter(new ZookeeperConfiguration(serverList, namespace));}}第三步定义一个类实现 SimpleJob 接口 public class TestJob implements SimpleJob {Overridepublic void execute(ShardingContext shardingContext){System.out.println(ShardingTotalCount:shardingContext.getShardingTotalCount());System.out.println(ShardingItem:shardingContext.getShardingItem());} }第四步增加JobConfig配置任务 Configuration public class JobConfig {Value(${sue.spring.elatisc.cron})private String testCron;Value(${sue.spring.elatisc.itemParameters})private String shardingItemParameters;Value(${sue.spring.elatisc.jobParameters})private String jobParameters ;Value(${sue.spring.elatisc.shardingTotalCount})private int shardingTotalCount;Autowiredprivate ZookeeperRegistryCenter registryCenter;Beanpublic SimpleJob testJob() {return new TestJob();}Beanpublic JobScheduler simpleJobScheduler(final SimpleJob simpleJob) {return new SpringJobScheduler(simpleJob, registryCenter, getConfiguration(simpleJob.getClass(),cron, shardingTotalCount, shardingItemParameters, jobParameters));}private geConfiguration getConfiguration(Class? extends SimpleJob jobClass,String cron,int shardingTotalCount,String shardingItemParameters,String jobParameters) {JobCoreConfiguration simpleCoreConfig JobCoreConfiguration.newBuilder(jobClass.getName(), testCron, shardingTotalCount).shardingItemParameters(shardingItemParameters).jobParameter(jobParameters).build();SimpleJobConfiguration simpleJobConfig new SimpleJobConfiguration(simpleCoreConfig, jobClass.getCanonicalName());LiteJobConfiguration jobConfig LiteJobConfiguration.newBuilder(simpleJobConfig).overwrite(true).build();return jobConfig;} }其中 cron cron表达式定义触发规则。 shardingTotalCount定义作业分片总数 shardingItemParameters定义分配项参数一般用分片序列号和参数用等号分隔多个键值对用逗号分 隔分片序列号从0开始不可大于或等于作业分片总数。 jobParameters作业自定义参数 第五步在 application.properties 文件中配置参数 spring.application.nameelasticjobDemo zk.serverListlocalhost:2181 zk.namespaceelasticjobDemo sue.spring.elatisc.cron0/5 * * * * ? sue.spring.elatisc.itemParameters0A,1B,2C,3D sue.spring.elatisc.jobParameterstest sue.spring.elatisc.shardingTotalCount4这样定时任务就配置好了创建定时任务的步骤相对于 xxl-job 来说要繁琐一些。 使用 elastic-job 的优缺点 优点支持分布式调度协调支持分片适合高并发和一些业务相对来说较复杂的场景。 缺点需要依赖于zookeeper实现定时任务相对于 xxl-job 要复杂一些要对分片规则非常熟悉。 3、其他分布式定时任务 3.1 Saturn Saturn是唯品会开源的一个分布式任务调度平台。取代传统的Linux Cron/Spring Batch Job的方 式做到全域统一配置统一监控任务高可用以及分片并发处理。 Saturn是在当当开源的Elastic-Job基础上结合各方需求和我们的实践见解改良而成。使用案例唯品会、酷狗音 乐、新网银行、海融易、航美在线、量富征信等。 github地址https://github.com/vipshop/Saturn/ 3.2 TBSchedule TBSchedule是阿里开发的一款分布式任务调度平台旨在将调度作业从业务系统中分离出来降低或者是消除和 业务系统的耦合度进行高效异步任务处理。 目前被广泛应用在阿里巴巴、淘宝、支付宝、京东、聚美、汽车之家、国美等很多互联网企业的流程调度系统中。 github地址https://github.com/taobao/TBSchedule 老实说优秀的定时任务还是挺多的不是说哪种定时任务牛逼我们就 一定要 不是哪种而是要根据实际业务需求 选择。每种定时任务都有优缺点合理选择既能满足业务需求又能避免资源浪费才是上上策。当然在实际的业 务场景通常会有多种定时任务一起 配合使用。
http://www.ihoyoo.com/news/36349.html

相关文章:

  • 商务网站开发源码网站经营许可备案号
  • 网站怎么做分时郑州个人网站开发
  • 个人备案网站可以做支付吗公司支付的网站建设如何入账
  • 济南做网站的公司服务器做网站教程
  • 温州优化网站方法福建建设信息网站监理企业招聘
  • 网站目录权限公司想为一个产品做多个网站
  • 百度站长网站地图网站设计 教程
  • 做网站要了解哪些网站建设一键搭建
  • 内江市住房和城乡建设局网站电话网站制作报价ihanshi
  • 做网站怎么赚钱 111网站信用建设应该用什么技术
  • 淘宝佣金推广网站建设电商首页模板网站
  • 同德县网站建设公司百度网址大全址大全
  • 免费建网站网址做网站如何自动采集图片
  • 外网网站贵州省网站备案
  • 西安外贸建站软装设计费用
  • 网站建设 金疙瘩计划网址导航网站简单制作
  • 选网站建设公司有什么注意的最近新闻头条最新消息
  • 张斌网站建设网站建设要求说明
  • 狮山网站开发.mil域名的网站
  • 机械企业网站建设大型门户网站建设需要哪些技术
  • 财税公司做网站中国网络营销网
  • 青岛比较知名的网站建设公司如何建设社区网站
  • 黄页大全18勿看2000网站苏州网站设计
  • 购物网站排名大全网站js特效
  • 建立微信群的步骤怎么对一个网站做优化
  • 网站建设app小程序开发建设一个营销网站有哪些步骤
  • h5成品网站动漫网页设计报告
  • 网站wordpress入侵黄骅贴吧百度贴吧
  • 网站怎么做伪静态iis7.0设计制作小车的基本步骤是
  • 国内免费图片素材网站做面膜的网站