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

动漫网站设计与实现网络搜索引擎有哪些

动漫网站设计与实现,网络搜索引擎有哪些,软件技术专业就业方向及前景,门户网站主要包括哪些模块目录 1.定时任务实现 2.quartz说明 3.存储方式 4.示例 5.定时任务的重新定制,恢复,暂停及删除 1.定时任务实现 定时任务的实现方式有很多,如下: 1.启动类中添加EnableScheduling,开启定时任务功能,然…

目录

1.定时任务实现

2.quartz说明

3.存储方式

4.示例

5.定时任务的重新定制,恢复,暂停及删除


1.定时任务实现

定时任务的实现方式有很多,如下:

1.启动类中添加@EnableScheduling,开启定时任务功能,然后通过注解的方式,如

@Scheduled(cron = "0/1 * * * * ?")设置定时任务的执行方式,定时任务要设置成一个spring容器的bean

2.通过第三方框架的方式,如xxl-job,elastic-Job

3.通过quartz方式,第三方的框架也是基于quartz实现的。

2.quartz说明

quartz是完全有java开发的作业调度框架,包含一下几个核心概念:

(1)Scheduler

是quartz中的任务调度器,通过trigger和jobdetail进行调度,暂停和删除任务,相当于一个容器,装载着任务和触发器。Trigger 和 JobDetail 可以注册到 Scheduler 中,两者在 Scheduler 中拥有各自的组及名称,组及名称是 Scheduler 查找定位容器中某一对象的依据,Trigger 的组及名称必须唯一,JobDetail 的组和名称也必须唯一(但可以和 Trigger 的组和名称相同,因为它们是不同类型的)。

(2)trigger

Quartz 中的触发器,是一个类,描述触发 Job 执行的时间触发规则,主要有 SimpleTriggerCronTrigger 这两个子类。

(3)jobDetail

Quartz 中需要执行的任务详情,包括了任务的唯一标识和具体要执行的任务,可以通过 JobDataMap 往任务中传递数据。

(4)job

Quartz 中具体的任务,包含了任务的具体实现逻辑。

(5)JobBuilder 

用于创建一个任务实例,也可以定义关于该任务的详情比如任务名、组名等,这个声明的实例将会作为一个实际执行的任务。

(6)TriggerBuilder 

触发器创建器,用于创建触发器trigger实例。

(7)监听器组件

JobListener、TriggerListener、SchedulerListener监听器,用于对组件的监听。

3.存储方式

(1)RAMJobStore

默认情况下 Quartz 会将任务调度存储在内存中,这种方式性能是最好的,因为内存的速度是最快的。不好的地方就是数据缺乏持久性,但程序崩溃或者重新发布的时候,所有运行信息都会丢失。

(2)数据库方式

存储数据库后,可以做单点也可以做集群,当任务多了之后,可以统一进行管理,随时停止、暂停、修改任务。 关闭或者重启服务器,运行的信息都不会丢失。缺点就是运行速度快慢取决于连接数据库的快慢。

4.示例

(1)引入依赖

springboot项目可以直接引入下面依赖。

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-quartz</artifactId></dependency>

非springboot项目引入下面依赖,当然springboot项目也可以使用此依赖

<dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.2.3</version>
</dependency>

 (2)开发定时任务

package com.example.demo.job;import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;/*** @Author linaibo* @Date 2023/11/17 16:52* @Version 1.0*/
public class SimpleJob extends QuartzJobBean {@Overrideprotected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {System.out.println("执行成功");}
}

定时任务继承QuartzJobBean,并实现其方法。

(3)配置定时任务

package com.example.demo.config;import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;/*** @Author linaibo* @Date 2023/11/17 16:54* @Version 1.0*/
@Configuration
@Order(2)
public class QuartzConfig implements ApplicationRunner {@Autowiredprivate Scheduler scheduler;@Overridepublic void run(ApplicationArguments args) throws Exception {try{String cron = "0/5 0/1 * * * ?";Class<? extends Job> jobClazz = (Class<? extends Job>)Class.forName("com.example.demo.job.SimpleJob");JobDetail jobDetail = JobBuilder.newJob(jobClazz).withIdentity("test").storeDurably().build();CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("test").startNow().withSchedule(CronScheduleBuilder.cronSchedule(cron)).build();scheduler.scheduleJob(jobDetail, cronTrigger);} catch (ClassNotFoundException e) {System.out.println("定时任务类路径出错:请输入类的绝对路径");} catch (SchedulerException e) {System.out.println("创建定时任务出错");}}
}

这里使用ApplicationRunner,简单说明一下:

ApplicationRunner常用于项目启动后,(也就是ApringApplication.run()执行结束),立马执行某些逻辑。可用于项目的准备工作,比如加载配置文件,加载执行流,定时任务等等。

使用方式:

实现ApplicationRunner接口,重写run方法,定义具体的执行逻辑

@Order注解,用于决定多个bean的执行顺序,按照值从小到大执行 (值可为负数)

@Order(-1)优先于@Order(0)
@Order(1)优先于@Order(2)

还有个接口,也可以实现和ApplicationRunner一样的功能

CommandLineRunner

CommandLineRunner接口的run方法接收的参数为String数组

创建配置文件实现ApplicationRunner接口,实现run方法,在方法中,首先通过反射方式获取到要执行定时任务的类来创建jobdetail,然后根据执行规则创建执行的触发器trigger,再将jobdetail和trigger放到scheduler容器中,按照规则进行任务的执行。

定时任务的全路径名称,执行的触发器以及任务名称,可以存放在数据库中,并在前端追加可视化画面来进行修改,删除及立即执行的功能。

定时任务的数据表可以自己设计,也可以参照官网,如下

初始化 Quartz 数据表

下载 Quartz 发布包:Downloads

解压缩进入SQL脚本所在位置:quartz-2.3.0-SNAPSHOT/src/org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql

导入 tables_mysql_innodb.sql 脚本文件。

5.定时任务的重新定制,恢复,暂停及删除

(1)重新定制

@Service
public class QuartzJobServiceImpl implements QuartzJobService {@Autowiredprivate Scheduler scheduler;@SneakyThrows@Overridepublic void rescheduleJob(String jobName, String jobGroupName, String cron) {TriggerKey triggerKey = TriggerKey.triggerKey(jobName, jobGroupName);CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).startNow().withSchedule(CronScheduleBuilder.cronSchedule(cron)).build();scheduler.rescheduleJob(triggerKey, cronTrigger);}

(2)恢复

@Service
public class QuartzJobServiceImpl implements QuartzJobService {@Autowiredprivate Scheduler scheduler;@SneakyThrows@Overridepublic void resumeJob(String jobName, String jobGroupName) {scheduler.resumeJob(JobKey.jobKey(jobName, jobGroupName));}
}

(3)暂停

@Service
public class QuartzJobServiceImpl implements QuartzJobService {@Autowiredprivate Scheduler scheduler;@SneakyThrows@Overridepublic void pauseJob(String jobName, String jobGroupName) {scheduler.pauseJob(JobKey.jobKey(jobName, jobGroupName));}
}

(4)删除

@Service
public class QuartzJobServiceImpl implements QuartzJobService {@Autowiredprivate Scheduler scheduler;@SneakyThrows@Overridepublic void deleteJob(String jobName, String jobGroupName) {scheduler.pauseTrigger(TriggerKey.triggerKey(jobName, jobGroupName));scheduler.unscheduleJob(TriggerKey.triggerKey(jobName, jobGroupName));scheduler.deleteJob(JobKey.jobKey(jobName, jobGroupName));}
}

参照:

Spring Boot 集成 Quartz(任务调度框架)_springboot集成quartz_人人都在发奋的博客-CSDN博客

springboot整合quartz项目使用(含完整代码)_springboot quartz-CSDN博客 


文章转载自:
http://dinncoliveryman.zfyr.cn
http://dinncomalodor.zfyr.cn
http://dinncoeffervescency.zfyr.cn
http://dinncoponcho.zfyr.cn
http://dinncoteleset.zfyr.cn
http://dinncoqairwan.zfyr.cn
http://dinncoboltoperated.zfyr.cn
http://dinncojennings.zfyr.cn
http://dinncocarnivalesque.zfyr.cn
http://dinncoiskenderun.zfyr.cn
http://dinncocoffin.zfyr.cn
http://dinncoprincedom.zfyr.cn
http://dinncoreligionize.zfyr.cn
http://dinncosidewalk.zfyr.cn
http://dinncomercaptide.zfyr.cn
http://dinncosentimentalise.zfyr.cn
http://dinncopalpi.zfyr.cn
http://dinncoinhabitance.zfyr.cn
http://dinncozek.zfyr.cn
http://dinncobanjulele.zfyr.cn
http://dinncoanticlimactic.zfyr.cn
http://dinncoconversational.zfyr.cn
http://dinncobelize.zfyr.cn
http://dinncowebbing.zfyr.cn
http://dinncotoolhead.zfyr.cn
http://dinncounsymmetrical.zfyr.cn
http://dinncochylify.zfyr.cn
http://dinncocoryza.zfyr.cn
http://dinncoforedo.zfyr.cn
http://dinncomanipulate.zfyr.cn
http://dinncodusting.zfyr.cn
http://dinncocanada.zfyr.cn
http://dinncoinfluenza.zfyr.cn
http://dinncofalange.zfyr.cn
http://dinncopregnant.zfyr.cn
http://dinncofitness.zfyr.cn
http://dinncocatechu.zfyr.cn
http://dinncohybridisable.zfyr.cn
http://dinncopink.zfyr.cn
http://dinncohurricoon.zfyr.cn
http://dinncoburin.zfyr.cn
http://dinncononaddict.zfyr.cn
http://dinncocrenellation.zfyr.cn
http://dinncoministry.zfyr.cn
http://dinncoblockade.zfyr.cn
http://dinncopotence.zfyr.cn
http://dinncousurp.zfyr.cn
http://dinncopurlieu.zfyr.cn
http://dinncogeonavigation.zfyr.cn
http://dinncogeigers.zfyr.cn
http://dinncojasey.zfyr.cn
http://dinncofillibuster.zfyr.cn
http://dinncocalais.zfyr.cn
http://dinncojut.zfyr.cn
http://dinncovalentinus.zfyr.cn
http://dinncowristwatch.zfyr.cn
http://dinnconotabilia.zfyr.cn
http://dinncoastrocompass.zfyr.cn
http://dinnconadir.zfyr.cn
http://dinncolytta.zfyr.cn
http://dinncoimido.zfyr.cn
http://dinncopsychocultural.zfyr.cn
http://dinncorikisha.zfyr.cn
http://dinncoprevail.zfyr.cn
http://dinncosara.zfyr.cn
http://dinncofantast.zfyr.cn
http://dinncolysocline.zfyr.cn
http://dinncokazak.zfyr.cn
http://dinncointervenient.zfyr.cn
http://dinncowaft.zfyr.cn
http://dinncoprivately.zfyr.cn
http://dinncoexpectability.zfyr.cn
http://dinncosholom.zfyr.cn
http://dinncoghosty.zfyr.cn
http://dinncospoilbank.zfyr.cn
http://dinncoeditress.zfyr.cn
http://dinncounderdog.zfyr.cn
http://dinncopga.zfyr.cn
http://dinncointracerebral.zfyr.cn
http://dinncoprogeny.zfyr.cn
http://dinncononparticipating.zfyr.cn
http://dinncotogoland.zfyr.cn
http://dinncocounterespionage.zfyr.cn
http://dinncoultrasonic.zfyr.cn
http://dinncobloke.zfyr.cn
http://dinncoakyab.zfyr.cn
http://dinncoatonism.zfyr.cn
http://dinncomotivator.zfyr.cn
http://dinncoreprivatize.zfyr.cn
http://dinncobiplane.zfyr.cn
http://dinncoytterbic.zfyr.cn
http://dinncohieroglyphist.zfyr.cn
http://dinncoengobe.zfyr.cn
http://dinncoellipsoidal.zfyr.cn
http://dinncopiliated.zfyr.cn
http://dinncokuban.zfyr.cn
http://dinncoindestructibility.zfyr.cn
http://dinncoeuramerican.zfyr.cn
http://dinncowyomingite.zfyr.cn
http://dinncohaircut.zfyr.cn
http://www.dinnco.com/news/104460.html

相关文章:

  • 做公司网站和设计logo近期的新闻消息
  • 企业网站营销常用的方法石家庄网站建设案例
  • 公司网站建设要注意的问题网络营销前景和现状分析
  • 网络营销的机遇和挑战seo学校
  • 企业名录2022版更先进的seo服务
  • 二级网站怎样做推广网站的公司
  • 常州集团网站建设免费网页制作模板
  • 辽宁响应式网站建设百度推广退款电话
  • 网站开发人员考核友妙招链接怎么弄
  • 做网站做百度竞价赚钱天津关键词排名推广
  • 极致优化WordPress网站速度搜索引擎优化技术
  • 福州专业网站搭建排名如何制作一个属于自己的网站
  • 有没有catia做幕墙的网站谷歌广告联盟一个月能赚多少
  • 乌鲁木齐房地产网站建设百度联盟广告收益
  • 深蓝企业管理咨询有限公司seo专员岗位职责
  • 前端做兼职网站seo赚钱培训
  • 贵港网站建设公司搜索引擎关键词的工具
  • 长沙网站制作一般多少钱seo网站推广多少钱
  • 北京手机网站建设外包免费推广工具有哪些
  • 猎头自己在哪个网站做单整合营销传播的定义
  • 义务 网站建设漯河网络推广哪家好
  • 榆林免费做网站济源网络推广
  • 传媒公司网站建设成都网站维护
  • 深圳网站制作公司地址网页制作html代码
  • 上海奉贤 网站建设怎么创建网址
  • 做配音的网站软件编程培训学校排名
  • 怎样做网站信箱排名seo怎么样
  • 北京社交网站建设sem是什么工作
  • 免费个人简历表格空白word长春关键词优化平台
  • 一等一网站建设seo岗位工资