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

c 网站建设seo竞价培训

c 网站建设,seo竞价培训,做web网站有前途吗,网站制作公司徐州目录 详解 调度中心 执行器 原理 快速入门 源码仓库地址 1.初始化数据库 2.配置调度中心 1.解压源码 2.需改配置文件 3.启动调度中心 3.配置执行器 1.引入pom依赖 2.修改配置文件 3.执行器组件配置 4.部署执行器项目 4.开发第一个任务 BEAN模式(类…

目录

详解

调度中心

执行器

原理

快速入门

源码仓库地址

1.初始化数据库

2.配置调度中心

1.解压源码

2.需改配置文件

3.启动调度中心

3.配置执行器

1.引入pom依赖

2.修改配置文件

3.执行器组件配置

4.部署执行器项目

4.开发第一个任务

BEAN模式(类形式)

BEAN模式(方法形式)

GLUE模式(Java)

任务类型

使用场景


详解

XXL-JOB是一个分布式的任务调度平台,其核心设计目标是:学习简单、开发迅速、轻量级、易扩展,现在已经开放源代码并接入多家公司的线上产品线,开箱即用。

xxl-job框架主要用于处理分布式的定时任务,其主要由调度中心和执行器组成。

调度中心

统一管理任务调度平台上的调度任务,负责触发调度执行,并且提供任务管理平台。

执行器

接收调度中心的调度并且执行,可以直接执行也可以集成到项目中。

        调度中心和执行器两个模块分开部署,相互分离,两者之间通过RPC进行通信,其中调度中心主要是提供一个平台,管理调度信息,发送调度请求,自己不承担业务代码,而执行器接受调度中心的调度执行业务逻辑。

原理

1.执行器的注册和发现

        执行器启动线程每隔30秒向注册表xxl_job_registry请求一次,更新执行器的心跳信息,调度中心启动线程每隔30秒检测一次xxl_job_registry,将超过90秒还没有收到心跳的实例信息从xxl_job_registry删除,并更新xxl_job_group服务的实例列表信息。

2.调度中心调用执行器

        执行器接收到调度中心的调度信息,将调度信息放到对应的任务的等待队列中;

        执行器的任务处理线程从任务队列中取出调度信息,执行业务逻辑,将结果放入一个公共的等待队列中;

        执行器有一个专门的回调线程定时批量从结果队列中取出任务结果,并且回调告知调度中心。

快速入门

源码仓库地址

github:https://github.com/xuxueli/xxl-job

gitee:xxl-job: 一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

gitcode:GitCode - 全球开发者的开源社区,开源代码托管平台

中央仓库地址:

<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-job-core</artifactId>
    <version>${最新稳定版本}</version>
</dependency>

1.初始化数据库

下载项目源码并解压,获取 “调度数据库初始化SQL脚本” 并执行即可。

“调度数据库初始化SQL脚本” 位置为:/xxl-job/doc/db/tables_xxl_job.sql

2.配置调度中心

1.解压源码

    xxl-job-admin:调度中心
    xxl-job-core:公共依赖
    xxl-job-executor-samples:执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器)
        :xxl-job-executor-sample-springboot:Springboot版本,通过Springboot管理执行器,推荐这种方式;
        :xxl-job-executor-sample-frameless:无框架版本;

2.需改配置文件

地址:/xxl-job/xxl-job-admin/src/main/resources/application.properties

内容说明:

### web
server.port=8081
server.servlet.context-path=/xxl-job-admin### actuator
management.server.servlet.context-path=/actuator
management.health.mail.enabled=false### resources
spring.mvc.servlet.load-on-startup=0
spring.mvc.static-path-pattern=/static/**
spring.resources.static-locations=classpath:/static/### freemarker
spring.freemarker.templateLoaderPath=classpath:/templates/
spring.freemarker.suffix=.ftl
spring.freemarker.charset=UTF-8
spring.freemarker.request-context-attribute=request
spring.freemarker.settings.number_format=0.##########
spring.freemarker.settings.new_builtin_class_resolver=safer### mybatis
mybatis.mapper-locations=classpath:/mybatis-mapper/*Mapper.xml
#mybatis.type-aliases-package=com.xxl.job.admin.core.model### xxl-job, datasource
spring.datasource.url=jdbc:mysql://192.168.1.200:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver### datasource-pool
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.minimum-idle=10
spring.datasource.hikari.maximum-pool-size=30
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.pool-name=HikariCP
spring.datasource.hikari.max-lifetime=900000
spring.datasource.hikari.connection-timeout=10000
spring.datasource.hikari.connection-test-query=SELECT 1
spring.datasource.hikari.validation-timeout=1000### xxl-job, email
spring.mail.host=smtp.qq.com
spring.mail.port=25
spring.mail.username=xxx@qq.com
spring.mail.from=xxx@qq.com
spring.mail.password=xxx
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory### xxl-job, access token
xxl.job.accessToken=default_token### xxl-job, i18n (default is zh_CN, and you can choose "zh_CN", "zh_TC" and "en")
xxl.job.i18n=zh_CN## xxl-job, triggerpool max size
xxl.job.triggerpool.fast.max=200
xxl.job.triggerpool.slow.max=100### xxl-job, log retention days
xxl.job.logretentiondays=30

修改项:

server.port=8081:调度中心端口号
server.servlet.context-path=/xxl-job-admin::调度中心项目地址
spring.datasource.url:调度中心数据库地址
spring.datasource.username:调度中心数据库用户名称
spring.datasource.password:调度中心数据库用户密码
xxl.job.accessToken:调度中心通讯TOKEN [选填]:非空时启用;为提升系统安全性,调度中心和执行器进行安全性校验,双方AccessToken匹配才允许通讯;
xxl.job.logretentiondays=30:调度中心日志表数据保存天数 [必填]

3.启动调度中心

如果已经正确进行上述配置,可将项目编译打包部署。

调度中心访问地址:1http://localhost:808/xxl-job-admin (该地址执行器将会使用到,作为回调地址)

默认登录账号 “admin/123456”, 登录后运行界面如下图所示。

至此“调度中心”项目已经部署成功。 

3.配置执行器

现以 springboot 版本为例;

1.引入pom依赖

<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-job-core</artifactId>
    <version>${最新稳定版本}</version>
</dependency>

2.修改配置文件

修改springboot项目中application.properties文件;

内容说明:

# web port
server.port=8082
# no web
#spring.main.web-environment=false# log config
logging.config=classpath:logback.xml### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
xxl.job.admin.addresses=http://127.0.0.1:8081/xxl-job-admin### xxl-job, access token
xxl.job.accessToken=default_token### xxl-job executor appname
xxl.job.executor.appname=xxl-job-executor-sample
### xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is null
xxl.job.executor.address=
### xxl-job executor server-info
xxl.job.executor.ip=127.0.0.1
xxl.job.executor.port=9999
### xxl-job executor log-path
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
### xxl-job executor log-retention-days
xxl.job.executor.logretentiondays=30

修改项:

server.port=8082 :项目ip
xxl.job.admin.addresses:调度中心部署根地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。
xxl.job.accessToken:执行器通讯TOKEN [选填]:非空时启用;为提升系统安全性,调度中心和执行器进行安全性校验,双方AccessToken匹配才允许通讯;
xxl.job.executor.appname:执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
xxl.job.executor.ip=127.0.0.1:执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。
xxl.job.executor.port=9999:执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999

3.执行器组件配置

新建执行器组件,配置内容说明:

    @Beanpublic XxlJobSpringExecutor xxlJobExecutor() {logger.info(">>>>>>>>>>> xxl-job config init.");XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();xxlJobSpringExecutor.setAdminAddresses(adminAddresses);xxlJobSpringExecutor.setAppname(appname);xxlJobSpringExecutor.setIp(ip);xxlJobSpringExecutor.setPort(port);xxlJobSpringExecutor.setAccessToken(accessToken);xxlJobSpringExecutor.setLogPath(logPath);xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);return xxlJobSpringExecutor;}

4.部署执行器项目

正确进行上述配置,可将执行器项目编译打部署

4.开发第一个任务

BEAN模式(类形式)

Bean模式任务,支持基于类的开发方式,每个任务对应一个Java类。不限制项目环境,兼容性好。即使是无框架项目,如main方法直接启动的项目也可以提供支持。

开发一个继承自"com.xxl.job.core.handler.IJobHandler"的JobHandler类,实现其中任务方法。

@Component

public class DemoClassHandler extends IJobHandler {
   @Override
   public ReturnT<String> execute(String param) throws Exception {
      XxlJobLogger.log("XXL-JOB, Hello World.");
 
      for (int i = 0; i < 5; i++) {
         XxlJobLogger.log("beat at:" + i);
         TimeUnit.SECONDS.sleep(2);
      }
      return SUCCESS;
   }
 
}

编写XxlJobConfig配置文件,用于注册定时任务类:

BEAN模式(方法形式)

Bean模式任务,支持基于方法的开发方式,每个任务对应一个方法。每个任务只需要开发一个方法,并添加”@XxlJob”注解即可,更加方便、快速

@XxlJob("demoJobHandler")
public void demoJobHandler() throws Exception {XxlJobHelper.log("XXL-JOB, Hello World.");
}

GLUE模式(Java)

1.新建任务

登录调度中心,点击下图所示“新建任务”按钮,新建示例任务。然后,参考下面截图中任务的参数配置,点击保存。

请点击任务右侧 “GLUE” 按钮,进入 “GLUE编辑器开发界面” ,见下图。“GLUE模式(Java)” 运行模式的任务默认已经初始化了示例任务代码,即打印Hello World。
( “GLUE模式(Java)” 运行模式的任务实际上是一段继承自IJobHandler的Java类代码,它在执行器项目中运行,可使用@Resource/@Autowire注入执行器里中的其他服务;

任务类型

1.BEAN模式: 类形式、方法形式

Bean模式任务,支持基于方法的开发模式,每个任务对应一个方法。
优点:
        每个任务只需要开发一个方法,并添加**@XxlJob注解**即可,方便简单快捷,支持自动扫描并添加至执行器容器中。
缺点:
        要求spring开发环境,基本现在项目spring必备。新定时任务的CRUD需要项目的重新构建和项目启动,如果遇到未执行完毕的情况,可能会多次执行,但是保证多次执行和一次执行的结果不影响,对系统也不会有影响

2.GLUE模式:Java / Shell / Python / Nodejs / Php

        定时任务以源码方式维护在调度中心,不需要在本地编写任何代码,我们在使用过程中,经常是在本地编码完毕后,直接复制到线上维护中心中
优点:
        支持通过Web IDE在线更新,实时编译和生效,因此不需要指定JobHandler和重启项目
缺点:
        如果你依赖了某个框架和服务,需要先依赖到自己项目中,然后在Web IDE中才能依赖,否则会执行报错,正常可以理解为,把代码从项目中搬到线上,可以实时编辑,但是和自己在本地写代码的要求一样,依赖和服务必须全部具备,多用于定时任务经常调整的场景中使用

使用场景

实际项目中可能会使用到Xxl-job来作为分布式任务框架执行定时任务的场景,都是为了让业务之外的操作变得更加的简单高效。具体如下:

    日志处理:当系统产生大量日志文件时,通过XXL-JOB创建定时任务,定期将日志文件进行压缩、归档或上传到云存储等操作;
    脚本执行:即使服务已经上线,仍然支持多种格式脚本执行;
    定期数据备份;
    定期删除旧文件;
    定时发送邮件等;

http://www.dt0577.cn/news/14257.html

相关文章:

  • 价格套餐网站百度最贵关键词排名
  • 衡水专业网站制作友情链接图片
  • 佛山网站建设怎么办北京网站制作公司
  • 做网站设计用什么软件最好万网域名交易
  • 网站设计说明书怎么写线上营销手段
  • 广州做网站公司网络广告设计
  • 如何给网站做引流软文营销的案例
  • 网站开发日志全网营销网络推广
  • 亿万先生网页在线客服关键词seo教程
  • 绵阳安州区做网站的有哪些电商推广和网络推广的区别
  • 网站开发人员要求青岛seo整站优化公司
  • 自学网站建设哪些网站网站宣传方式有哪些
  • 烟台工程建设信息网站营销
  • 织梦音乐网站模板seo建站教程
  • o2o网站建设新闻推广赚钱的软件排行
  • 建设银行网站查询企业年金如何推广app更高效
  • 网站备案管理系统免费代理上网网站
  • wordpress insert语句seo专员岗位职责
  • 龙华公司做网站滁州网站seo
  • 如何建设公司网络营销网站百度sem
  • 江宁网站建设案例快速排名优化怎么样
  • 邯郸wap网站建设公司dsp投放方式
  • 靖江做网站百度风云榜官网
  • 网站设计 无锡平台seo
  • 贵阳网站建设哪家便宜长春今日头条新闻
  • 自己开发一个app需要多少钱seo视频教学网站
  • 建设工程施工合同法条网站关键词优化培训
  • 深圳建设局网站注册结构师培训360搜索网址是多少
  • 家政公司怎么注册西安seo排名
  • 中企动力全网门户网站杭州seo网站建设靠谱