info

[Spring]支持注解的Spring调度器

匆匆过客 提交于 2020-01-16 15:48:30
目录 概述 实时触发调度任务   TaskScheduler接口   Trigger接口   完整范例 @Scheduler的使用方法   启动注解   @Scheduler定义触发条件   完整范例 参考 概述 如果想在Spring中使用任务调度功能,除了集成调度框架Quartz这种方式,也可以使用Spring自己的调度任务框架。 使用Spring的调度框架,优点是:支持注解(@Scheduler),可以省去大量的配置。 实时触发调度任务 TaskScheduler接口 Spring3引入了TaskScheduler接口,这个接口定义了调度任务的抽象方法。 TaskScheduler接口的声明: public interface TaskScheduler { ScheduledFuture<?> schedule(Runnable task, Trigger trigger); ScheduledFuture<?> schedule(Runnable task, Date startTime); ScheduledFuture<?> scheduleAtFixedRate(Runnable task, Date startTime, long period); ScheduledFuture<?> scheduleAtFixedRate(Runnable task, long

测试计划

我与影子孤独终老i 提交于 2020-01-16 14:27:27
1 引言 1.1 编写目的 本测试计划文档作为指导此测试项目循序渐进的基础,帮助我们安排合适的资源和进度,避免可能的风险。本文档有助于实现以下目标: 1) 确定现有项目的信息和应测试的软件结构。 2) 列出推荐的测试需求 3) 推荐可采用的测试策略,并对这些策略加以详细说明 4) 确定所需的资源,并对测试的工作量进行估计。 5) 列出测试项目的可交付元素,包括用例以及测试报告等。 1.2 背景 随着人们知识层次的提高,图书馆成为日常生活中不可缺少的一部分。而图书馆的存数量和业务量庞大,仅仅靠传统的记账式管理是不可行的。图书馆管理系统应运而生,逐渐成为信息化建设的重要组成部分。图书馆管理系统为学校或社会型图书馆的管理员提供所有借阅者的详细信息,以及馆内库存的详细情况,对借书和还书两大功能进行合理操纵并登记。 说明: 开发软件名称:图书管理系统。 项目开发者:××学院计算机科学系“图书管理系统”开发小组: ××× ( ×号,组长 ) ,××× ( ×号 ) ,…… 用户单位:××大学 主键 (Primary Key) :每一笔资料中的主键都是表格中的唯一值。换言之,它是用来独一无二地确认一个表格中的每一行资料 外键( Foreign Key ): 设表 t1,t2 中都有一个 name 字段 , 而且是 t1 的主键 ,那么如果设 t2 中的 name 为外键的话

SpringBoot:实现定时任务

☆樱花仙子☆ 提交于 2020-01-16 14:00:38
一、定时任务实现的几种方式: Timer 这是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。 ScheduledExecutorService 也jdk自带的一个类;是基于线程池设计的定时任务类,每个调度任务都会分配到线程池中的一个线程去执行,也就是说,任务是并发执行,互不影响。 Spring Task Spring3.0以后自带的task,可以将它看成一个轻量级的Quartz,而且使用起来比Quartz简单许多。 Quartz 这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂。 二、基于SpringBoot的定时任务 使用SpringBoot 自带的定时任务,只需要添加相应的注解就可以实现 2.1 导入SpringBoot启动包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.1.RELEASE</version> </dependency> 2.2 启动类启用定时 在启动类上面加上

Quartz.NET入门

自古美人都是妖i 提交于 2020-01-16 11:57:20
Quartz.NET是一个开源的作业调度框架。 官网地址:https://www.quartz-scheduler.net/ 目前最新版本为3.0.7,需要.NET Framework 4.5.2及更高版本以上。 .NET Framework 4.0及以下可以用版本2.6.2。 本文用的是2.6.2版本,下面为入门例子。 1、创建2个简单任务 Hello1Job.cs public class Hello1Job : IJob { public void Execute(IJobExecutionContext context) { LogHelper.Info("hello1"); } } Hello2Job.cs public class Hello2Job : IJob { public void Execute(IJobExecutionContext context) { LogHelper.Info("hello2"); } } 2、创建任务服务 QuartzService.cs //引用Quartz、Quartz.Impl; public class QuartzService { //调度器 IScheduler scheduler; public QuartzService() { //调度器工厂 ISchedulerFactory factory = new

最新的构建Jenkins插件的方式

瘦欲@ 提交于 2020-01-16 11:45:31
记录瞬间   最近想要了解一下Jenkins的插件如何开发,所以在网上找了一些资料,但是经过一番周折,发现之前的一些方法不能使用了,在此呢,根据自己的一些经历,简述一些开发Jenkins插件变化的地方。   网上主要集中在构建Jenkins插件的框架上,前后的一些信息基本不变,比如:对Maven、Java版本的要求,修改settings.xml文件,后续开发代码的编写等基本都是不变的。   JDK版本要求在1.6以上、Maven官方要求版本在3以上   settings.xml文件需要配置如下: <settings> <pluginGroups> <pluginGroup>org.jenkins-ci.tools</pluginGroup> </pluginGroups> <profiles> <!-- Give access to Jenkins plugins --> <profile> <id>jenkins</id> <activation> <activeByDefault>true</activeByDefault> <!-- change this to false, if you don't like to have it on per default --> </activation> <repositories> <repository> <id>repo

设置nginx服务器

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-16 11:09:49
地址 D:\phpstudy_pro\Extensions\Nginx1.15.11\conf\vhosts test.store-dumma-backend.com_80.conf server { listen 80; server_name test.store-dumma-backend.com; root "D:/workspace/store-dumma-backend/public"; location / { index index.php index.html error/index.html; error_page 400 /error/400.html; error_page 403 /error/403.html; error_page 404 /error/404.html; error_page 500 /error/500.html; error_page 501 /error/501.html; error_page 502 /error/502.html; error_page 503 /error/503.html; error_page 504 /error/504.html; error_page 505 /error/505.html; error_page 506 /error/506.html; error_page 507

Class文件结构

狂风中的少年 提交于 2020-01-16 05:12:09
class文件是一组以8bit字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑的排列在class文件中,中间没有添加任何分隔符。当遇到需要占用8bit字节以上的数据项时,会按照高位在前的方式分割成若干个8bit字节进行存储。 ClassFile结构 类型 名称 数量 u4 magic 1 u2 minor_version 1 u2 major_version 1 u2 constant_pool_count 1 cp_info constant_pool constant_pool_count-1 u2 access_flags 1 u2 this_class 1 u2 super_class 1 u2 interfaces_count 1 u2 interfaces interfaces_count u2 fields_count 1 field_info fields fields_count u2 methods_count 1 method_info methods methods_count u2 attributes_count 1 attribute_info attributes attributes_count MagicNumber 固定值: cafe babe 作用是确定这个文件是否为一个能被jvm所接受的Class文件

爬虫—启新宝接口函数

▼魔方 西西 提交于 2020-01-16 04:49:34
from selenium import webdriver import time import re from bs4 import BeautifulSoup #************************************************************************ #定义login函数 def login(username,password): driver = webdriver.Firefox(executable_path='C:/Program Files (x86)/Mozilla Firefox/firefox.exe') driver.get('http://www.qixin.com/login') time.sleep(2) driver.maximize_window() driver.find_element_by_link_text('QQ登录').click() driver.switch_to_frame('ptlogin_iframe')#切换到iframe框架 driver.find_element_by_link_text('帐号密码登录').click() driver.find_element_by_id('u').clear() driver.find_element_by_id('u')

mysql脚本补充数据 json_extract json中有数组 数组动态索引

ε祈祈猫儿з 提交于 2020-01-16 01:26:57
背景: 有两个表,一个bulletin_info,一个common_infile表 bulletin_info表:id、request_json;其中request_json是一个json串。 common_infile表:id、info_id、file_id、file_key;其中info_id是bulletin_info表的id,file_id、file_key是request_json中解析出的字段。 历史数据中file_key未落库,现将file_key补充完整。 思路: (1)查出common_infile中file_key为空的数据 (2)根据(1)中common_infile查出的info_id查出bulletin_info对应的request_json数据 (3)解析出后再将查询结果赋值到common_infile中的file_key中 (4)所需要的json数据是在list中,所以需要将数据解析出来 SELECT JSON_EXTRACT(request_json,CONCAT('$.params.commonFileList[',i,'].fileId')) FROM bulletin_info WHERE id = 1; 说明:其中使用了JSON_EXTRACT,CONCAT方法,i是变量,0,1,2...,在取值时要循环取值。 SELECT

Yum包管理

狂风中的少年 提交于 2020-01-16 01:21:47
Yum Yum 是Red Hat软件包管理器,它能够查询有关可用软件包的信息,从存储库获取软件包,安装和卸载软件包,以及将整个系统更新到最新的可用版本。Yum在更新,安装或删除软件包时执行自动依赖性解析,因此能够自动确定,获取和安装所有可用的依赖软件包。 Yum可以配置新的,额外的存储库或 包源 ,还提供许多增强和扩展其功能的插件。百胜可以执行许多与 RPM 相同的任务; 此外,许多命令行选项都是类似的。Yum可以在一台计算机或一组计算机上轻松简单地进行包管理。 检查和更新包 通过Yum,可以检查系统是否有等待应用的更新。可以列出需要更新的软件包并将其作为整体进行更新,也可以更新选定的单个软件包。 查询更新 要查看系统上哪些已安装的软件包具有可用更新,请使用以下命令: yum check-update yum check-update 的输出类似这样: 更新包 您可以选择一次更新单个包,多个包或所有包。如果您更新的软件包或软件包的任何依赖项本身都有可用的更新,那么它们也会更新。 更新单个包 要更新单个程序包,请运行以下命令 root : yum update 包名 yum 提供更新信息,然后提示您确认更新; yum默认以交互方式运行。如果您已经知道 yum 命令计划执行哪些事务,则可以使用该 -y 选项自动回答 yes yum请求的任何问题(在这种情况下,它以非交互方式运行)。但是