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

通过高新区网站建设搜索排名广告营销怎么做

通过高新区网站建设,搜索排名广告营销怎么做,济南网站建设济南,长春市住房建设局网站分布式任务处理 1. 什么是分布式任务调度 视频上传成功需要对视频的格式进行处理#xff0c;如何用Java程序对视频进行处理呢#xff1f;这里有一个关键的需求就是当视频比较多的时候我们如何可以高效处理。 如何去高效处理一批任务呢#xff1f; 1、多线程 多线程是充…分布式任务处理 1. 什么是分布式任务调度 视频上传成功需要对视频的格式进行处理如何用Java程序对视频进行处理呢这里有一个关键的需求就是当视频比较多的时候我们如何可以高效处理。 如何去高效处理一批任务呢 1、多线程 多线程是充分利用单机的资源。 2、分布式加多线程 充分利用多台计算机每台计算机使用多线程处理。 方案2可扩展性更强。 方案2是一种分布式任务调度的处理方案。 什么是分布式任务调度 我们可以先思考一下下面业务场景的解决方案 某电商系统需要在每天上午10点下午3点晚上8点发放一批优惠券。 某财务系统需要在每天上午10点前结算前一天的账单数据统计汇总。 某电商平台每天凌晨3点要对订单中的无效订单进行清理。 12306网站会根据车次不同设置几个时间点分批次放票。 电商整点抢购商品价格某天上午8点整开始优惠。 商品成功发货后需要向客户发送短信提醒。 类似的场景还有很多我们该如何实现 以上这些场景就是任务调度所需要解决的问题。 任务调度顾名思义就是对任务的调度它是指系统为了完成特定业务基于给定时间点给定时间间隔或者给定执行次数自动执行任务。 如何实现任务调度 多线程方式实现 学过多线程的同学可能会想到我们可以开启一个线程每sleep一段时间就去检查是否已到预期执行时间。 以下代码简单实现了任务调度的功能 Javapublic static void main(String[] args) {        //任务执行间隔时间     final long timeInterval 1000;     Runnable runnable new Runnable() {         public void run() {             while (true) {                 //TODOsomething                 try {                     Thread.sleep(timeInterval);                 } catch (InterruptedException e) {                     e.printStackTrace();                 }             }         }     };     Thread thread new Thread(runnable);     thread.start(); } 上面的代码实现了按一定的间隔时间执行任务调度的功能。 Jdk也为我们提供了相关支持如Timer、ScheduledExecutor下边我们了解下。 Timer方式实现 Javapublic static void main(String[] args){      Timer timer new Timer();      timer.schedule(new TimerTask(){         Override          public void run() {             //TODOsomething         }      }, 1000, 2000);  //1秒后开始调度每2秒执行一次 } Timer 的优点在于简单易用每个Timer对应一个线程因此可以同时启动多个Timer并行执行多个任务同一个Timer中的任务是串行执行。 ScheduledExecutor方式实现 Javapublic static void main(String [] agrs){     ScheduledExecutorService service Executors.newScheduledThreadPool(10);     service.scheduleAtFixedRate(             new Runnable() {                 Override                 public void run() {                     //TODOsomething                     System.out.println(todo something);                 }             }, 1,             2, TimeUnit.SECONDS); } Java 5 推出了基于线程池设计的 ScheduledExecutor其设计思想是每一个被调度的任务都会由线程池中一个线程去执行因此任务是并发执行的相互之间不会受到干扰。 Timer 和 ScheduledExecutor 都仅能提供基于开始时间与重复间隔的任务调度不能胜任更加复杂的调度需求。比如设置每月第一天凌晨1点执行任务、复杂调度任务的管理、任务间传递数据等等。 Quartz 是一个功能强大的任务调度框架它可以满足更多更复杂的调度需求Quartz 设计的核心类包括 Scheduler, Job 以及 Trigger。其中Job 负责定义需要执行的任务Trigger 负责设置调度策略Scheduler 将二者组装在一起并触发任务开始执行。Quartz支持简单的按时间间隔调度、还支持按日历调度方式通过设置CronTrigger表达式包括秒、分、时、日、月、周、年进行任务调度。 第三方Quartz方式实现 Javapublic static void main(String [] agrs) throws SchedulerException {     //创建一个Scheduler     SchedulerFactory schedulerFactory new StdSchedulerFactory();     Scheduler scheduler schedulerFactory.getScheduler();     //创建JobDetail     JobBuilder jobDetailBuilder JobBuilder.newJob(MyJob.class);     jobDetailBuilder.withIdentity(jobName,jobGroupName);     JobDetail jobDetail jobDetailBuilder.build();     //创建触发的CronTrigger 支持按日历调度         CronTrigger trigger TriggerBuilder.newTrigger()                 .withIdentity(triggerName, triggerGroupName)                 .startNow()                 .withSchedule(CronScheduleBuilder.cronSchedule(0/2 * * * * ?))                 .build();         //创建触发的SimpleTrigger 简单的间隔调度         /*SimpleTrigger trigger TriggerBuilder.newTrigger()                 .withIdentity(triggerName,triggerGroupName)                 .startNow()                 .withSchedule(SimpleScheduleBuilder                         .simpleSchedule()                         .withIntervalInSeconds(2)                         .repeatForever())                 .build();*/     scheduler.scheduleJob(jobDetail,trigger);     scheduler.start(); } public class MyJob implements Job {     Override     public void execute(JobExecutionContext jobExecutionContext){         System.out.println(todo something);     } } 通过以上内容我们学习了什么是任务调度任务调度所解决的问题以及任务调度的多种实现方式。 什么是分布式任务调度 通常任务调度的程序是集成在应用中的比如优惠卷服务中包括了定时发放优惠卷的的调度程序结算服务中包括了定期生成报表的任务调度程序由于采用分布式架构一个服务往往会部署多个冗余实例来运行我们的业务在这种分布式系统环境下运行任务调度我们称之为分布式任务调度如下图 分布式调度要实现的目标 不管是任务调度程序集成在应用程序中还是单独构建的任务调度系统如果采用分布式调度任务的方式就相当于将任务调度程序分布式构建这样就可以具有分布式系统的特点并且提高任务的调度处理能力 1、并行任务调度 并行任务调度实现靠多线程如果有大量任务需要调度此时光靠多线程就会有瓶颈了因为一台计算机CPU的处理能力是有限的。 如果将任务调度程序分布式部署每个结点还可以部署为集群这样就可以让多台计算机共同去完成任务调度我们可以将任务分割为若干个分片由不同的实例并行执行来提高任务调度的处理效率。 2、高可用 若某一个实例宕机不影响其他实例来执行任务。 3、弹性扩容 当集群中增加实例就可以提高并执行任务的处理效率。 4、任务管理与监测 对系统中存在的所有定时任务进行统一的管理及监测。让开发人员及运维人员能够时刻了解任务执行情况从而做出快速的应急处理响应。 5、避免任务重复执行 当任务调度以集群方式部署同一个任务调度可能会执行多次比如在上面提到的电商系统中到点发优惠券的例子就会发放多次优惠券对公司造成很多损失所以我们需要控制相同的任务在多个运行实例上只执行一次。
http://www.hkea.cn/news/14380161/

相关文章:

  • 义乌网站建设制作商货代网站建设
  • ps做分享类网站效果图著名办公空间设计公司
  • iis 网站无法访问成都建设信息网官网
  • 临泉建设网站仪征 做网站
  • 使用flashfxp上传网站涟源seo快速排名
  • 如何运营垂直网站网站名字怎样做版权
  • 如何做企业网站建设汝州市住房和城乡建设局网站
  • 西安小程序搭建福州seo排名公司
  • 陶瓷行业网站建设招标书网站建设文字
  • 怎么用flash做视频网站燕郊网站制作多少钱
  • 如何自己编写网站百度小程序云开发
  • angularjs网站模板中职计算机专业主要学什么
  • 有个虚拟服务器建设网站优化设计答案六年级上册
  • 连山网站建设网站建设公司收费
  • 手机版传奇网站北京建行网站
  • iis不用dns解析还有什么办法也能一个ip对应多个网站吗学习编程
  • 做网站那个公司网站背景音乐怎么做
  • 网站开发要多长时间金牛网站建设
  • 2018网站建设wordpress适合下载站的主题
  • wordpress做后端上海企业网站优化公司
  • 公司网站开发哪家好建设股份有限公司
  • 门户网站 建设方案国外怎么做直播网站吗
  • 东莞高端网站定制杭州数据推广
  • sae 安装新版wordpressseo顾问服务公司
  • 网站建设赵玉敏世界优秀摄影作品网站
  • 南昌市网站建设绍兴网站开发08keji
  • 网站推广岗位的要求东莞网页制作费用
  • 做网站一天能赚多少钱餐饮公司做网站好处
  • 那家做网站比较好网站建设公司 六安
  • 技术支持 海安网站建设搜索引擎优化网站排名