schema

Set limits on mongo db collection

十年热恋 提交于 2020-03-05 12:20:18
问题 So, there are two limits I want to set in mondo db: 1. Only allow one document to be inserted into the dbs, and no more. This document cannot be deleted once added, BUT it can be modified. Also, no other documents can be added to that collection. Only one value will be allowed under this schema. { "_id" : ObjectId("5800"), "seconds" : "120", "__v" : 0 } No more new seconds will be allowed to be added in, and only the above document can be modified. I have tried: var numbersSchema = new

spring定时任务的几种实现方式

大憨熊 提交于 2020-03-05 11:14:28
Spring定时任务的几种实现 近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将结合 spring框架来介绍。 一.分类 从实现的技术上来分类,目前主要有三种技术(或者说有三种产品): Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少,这篇文章将不做详细介绍。 使用Quartz,这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂,稍后会详细介绍。 Spring3.0以后自带的task,可以将它看成一个轻量级的Quartz,而且使用起来比Quartz简单许多,稍后会介绍。 从作业类的继承方式来讲,可以分为两类: 作业类需要继承自特定的作业类基类,如Quartz中需要继承自org.springframework.scheduling.quartz.QuartzJobBean;java.util.Timer中需要继承自java.util.TimerTask。 作业类即普通的java类,不需要继承自任何基类。 注:个人推荐使用第二种方式,因为这样所以的类都是普通类

Spring定时任务的几种实现

て烟熏妆下的殇ゞ 提交于 2020-03-05 11:07:31
Spring定时任务的几种实现 Spring定时任务的几种实现 近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将结合 spring框架来介绍。 一.分类 从实现的技术上来分类,目前主要有三种技术(或者说有三种产品): Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少,这篇文章将不做详细介绍。 使用Quartz,这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂,稍后会详细介绍。 Spring3.0以后自带的task,可以将它看成一个轻量级的Quartz,而且使用起来比Quartz简单许多,稍后会介绍。 从作业类的继承方式来讲,可以分为两类: 作业类需要继承自特定的作业类基类,如Quartz中需要继承自org.springframework.scheduling.quartz.QuartzJobBean;java.util.Timer中需要继承自java.util.TimerTask。 作业类即普通的java类,不需要继承自任何基类。 注:个人推荐使用第二种方式

spring-定时任务<task:scheduled-tasks>

戏子无情 提交于 2020-03-05 11:01:01
Spring内部有一个task是Spring自带的一个设定时间自动任务调度,提供了两种方式进行配置,一种是注解的方式,而另外一种就是XML配置方式了。注解方式比较简洁,XML配置方式相对而言有些繁琐,但是应用场景的不同,两者又各有优点,所以具体使用还是根据需求来划分。因为任务调度这样的需求,通常改动都是比较多的,如果用注解的方式改动就变得麻烦了,必须去重新编译。所以更多的时候选择用XML配置的方式。 下面就介绍一下两种方式的配置: 第一种方式: XML配置方式 1.编写作业类 import org.springframework.stereotype.Service; @Service public class TaskJob { public void job1() { System.out.println(“任务进行中。。。”); } } 2.添加spring-task配置文件,相关头信息如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:task="http://www.springframework.org

Spring中@Async注解实现异步 转

馋奶兔 提交于 2020-03-05 10:38:28
出处: Spring中@Async注解实现异步   异步执行一般用来发送一些消息数据,数据一致性不要求太高的场景,对于spring来说,它把这个异步进行了封装,使用一个注解就可以实现。   Spring中通过在方法上设置 @Async 注解,可使得方法被异步调用。也就是说该方法会在调用时立即返回,而这个方法的实际执行交给Spring的TaskExecutor去完成。 用法   程序启动时开启 @EnableAsync 注解 建立新的类型,建立 异步方法 ,为方法添加 @Async 注解 在业务代码中, @Autowired 注入你的类型,使用它即可 我们可以关注到在配置task的时候,是有参数让我们配置线程池的数量的。因为这种实现方法,所以在同一个类中的方法调用,添加@async注解是失效的!,原因是当你在同一个类中的时候,方法调用是在类体内执行的,spring无法截获这个方法调用. 事例 Spring的配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www

Spring 集成 RabbitMQ

五迷三道 提交于 2020-03-05 03:26:47
pom.xml <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit</artifactId> <version>2.0.2.RELEASE</version> </dependency> spring-rabbitmq-parent.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:rabbit="http://www.springframework.org/schema/rabbit" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/rabbit http://www.springframework.org/schema

构建读写分离的数据库集群

夙愿已清 提交于 2020-03-04 19:44:35
4.1实战案例——构建读写分离的数据库集群 使用 Mycat作为数据库中间件服务构建读写分离的数据库集群 使用一台虚拟机部署 Mycat数据库中间件服务,将用户提交的读写操作识别分发给相应的数据库 节点。这样将用户的访问操作、数据库的读与写操作分给 3台主机,只有数据库集群的主节点接 收增、删、改 SQL语句,从节点接收查询语句,分担了主节点的查询压力 基础准备 使用 CentOS 7.2系统, 创建 3台虚拟机进行实验。 其中 2台虚拟机 db1和 db2部署 MariaDB数据库服务,搭建主从数据库集群;一台作为主节点,负 责写入数据库信息;另一台作为从节点,负责读取数据库信息。 基础环境配置 修改主机名 # hostnamectl set-h ostname mycat # hostnamectl set-h ostname db1 # hostnamectl set-h ostname db2 修改完之后使命令生效 # bash 编辑hosts文件(mycat,db1,db2) # vi /etc/hosts 安装JDK环境(mycat) 安装java环境 # yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel 查看java版本 # java -version 部署MariaDB主从数据库集群服务

MyCat数据库的基础配置及使用

痴心易碎 提交于 2020-03-04 10:20:18
一、为什么需要分布式数据据库 随着计算机和信息技术的迅猛发展,行业应用系统的规模迅速扩大,行业应用所产生的数据量呈爆炸式增长,动辄达到数百TB甚至数百PB的规模,已远远超出传统计算技术和信息系统的处理能力,集中式数据库面对大规模数据处理逐渐表现出其局限性。因此,人们希望寻找一种能快速处理数据和及时响应用户访问的方法,也希望对数据进行集中分析、管理和维护。这已经成为迫切需求。 分布式数据库是在集中式数据库的基础上发展起来的,是计算机技术和网络技术结合的产物。分布式数据库是指数据在物理上分布而在逻辑上集中管理的数据库系统。物理上分布是指数据分布在物理位置不同并由网络连接的节点或站点上;逻辑上集中是指各数据库节点之间的逻辑上是一个整体,并由统一的数据库管理系统管理。不同的节点分布可以跨不同的机房、城市甚至国家。 二、分布式数据库的特点 分布式数据库具有透明性、数据冗余性、易于扩展性、自治性等特点,还具有经济、性能优越、响应速度更快、灵活的体系结构、易于集成现有系统等特点。 分布式数据库尽管有着天生的高贵血统,但它依赖调整网络,对事务的处理远没有传统数据库成熟,在很长一段时间内分布式数据存储将与传统数据存储共存。 三、MyCat数据库中间件简介 MyCat是一个彻底开源的面向企业应用开发的大数据库集群,支持事务、ACID,是可以替代MySQL的加强版数据库

Spring设置定时器配置

我是研究僧i 提交于 2020-03-04 10:10:53
corn表达式生成:http://www.pppet.net/ 1.注解方式 添加命名空间 xmlns:task="http://www.springframework.org/schema/task" http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd task任务扫描注解 <task:annotation-driven/> spring扫描位置 <context:annotation-config/> <context:component-scan base-package="com.test"/> 定时任务 @Scheduled(cron="0/5 * * * * ? ") //每5秒执行一次 public void myTest(){ System.out.println("进入测试"); } 注意:定时器的任务方法不能有返回值(如果有返回值,spring初始化的时候会告诉你有个错误、需要设定一个proxytargetclass的某个值为true) 2.xml方式 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www

鼠须管基本配置(佛系专供)

风格不统一 提交于 2020-03-04 00:02:12
保证基本能用,不折腾 数据文件位置 mac 共享资料夹: /Library/Input Methods/Squirrel.app/Contents/SharedSupport/ 用户资料夹: ~/Library/Rime/ windows 用户文件夹: %APPDATA%\Rime 配置文件 你可以直接通过修改系统目录下相应的.yaml文件来修改某项设置, 但是当软件升级时, 系统目录中的配置文件可能被覆盖, 为了防止这种情况, 官方文档中给出了一种推荐的定制方法: Rime的各种配置,均是由 .yaml 文件所定义。yaml是一种标记语言。 .yaml 文件实际上是文本文档。可使用记事本、或Emeditor等进行编辑。 对Rime进行自定义,是通过对 .custom.yaml 文件修改达成。不同的 .custom.yaml 文件,控制不同的功能实现。 .custom.yaml 实际上是相当于对 .yaml 文件打补丁,在重新部署后,会将 .custom.yaml 中的内容写入 .yaml 文件中,完成自定。 例一: weasel.yaml 是常规设置,主要控制托盘图标、候选词横竖排列、界面配色等等功能。那么,我们需要定制界面配色,只需在 weasel.custom.yaml 中修改,重新部署后就可实现。 例二: default.yaml 是默认设置,主要控制快捷键、按键上屏等等