持久化

selenium 持久化

末鹿安然 提交于 2019-12-04 16:45:55
1、安装pyexcel pip3 install -i https://pypi.douban.com/simple pyexcel 2、四步走战略 import time import sys from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.chrome.options import Options import pyexcel # 1.导入模块 # if __name__ == '__main__': keyword = 'iphone' if len(sys.argv) > 1: keyword = sys.argv[1] option = Options() option.add_argument('--headless') # 打开浏览器 browser = webdriver.Chrome(chrome_options=option) browser.get('https://www.jd.com') # 搜索iphone _input = browser.find_element_by_id('key') _input.send_keys(keyword) _input.send_keys(Keys.ENTER)

关闭redis持久化功能

自闭症网瘾萝莉.ら 提交于 2019-12-04 10:54:49
关闭redis持久化功能 持久化会报如下信息 会影响硬盘写入性能 所以没什么用 就关掉吧 修改redis配置文件,redis.conf 第115行左右。 1.注释掉原来的持久化规则 <pre> #save 900 1 #save 300 10 #save 60 10000 </pre> 2.设置为空 <pre> save "" </pre> 然后重启redis服务即可。 ps:linux RDB: 10 MB of memory used by copy-on-write 一般说明内存不够用了 来源: https://www.cnblogs.com/newmiracle/p/11856329.html

P3919 【模板】可持久化数组(可持久化线段树/平衡树)

北城余情 提交于 2019-12-04 05:30:23
P3919 【模板】可持久化数组(可持久化线段树/平衡树) Description 如题,你需要维护这样的一个长度为 N N N 的数组,支持如下几种操作 在某个历史版本上修改某一个位置上的值 访问某个历史版本上的某一位置的值 此外,每进行一次操作( 对于操作2,即为生成一个完全一样的版本,不作任何改动 ),就会生成一个新的版本。版本编号即为当前操作的编号(从1开始编号,版本0表示初始状态数组) Input 输入的第一行包含两个正整数 N,M, 分别表示数组的长度和操作的个数。 第二行包含N个整数,依次为初始状态下数组各位的值(依次为 ai ,1≤i≤N )。 接下来M行每行包含3或4个整数,代表两种操作之一(i 为基于的历史版本号): 对于操作1,格式为vi 1 loci valuei ,即为在版本vi 的基础上,将 aloci修改为 valuei 对于操作2,格式为vi 2 loci ,即访问版本vi 中的 aloci 的值 Output 输出包含若干行,依次为每个操作2的结果。 Sample Input 5 10 59 46 14 87 41 0 2 1 0 1 1 14 0 1 1 57 0 1 1 88 4 2 4 0 2 5 0 2 4 4 2 1 2 2 2 1 1 5 91 Sample Output 59 87 41 87 88 46 Data Size

P3834 【模板】可持久化线段树 1(主席树)

二次信任 提交于 2019-12-04 05:29:31
P3834 【模板】可持久化线段树 1(主席树) Description 如题,给定N个整数构成的序列,将对于指定的闭区间查询其区间内的第K小值。 Input 第一行包含两个正整数N、M,分别表示序列的长度和查询的个数。 第二行包含N个整数,表示这个序列各项的数字。 接下来M行每行包含三个整数l,r,k , 表示查询区间[l,r]内的第k小值。 Outupt 输出包含k行,每行1个整数,依次表示每一次查询的结果 Sample Input 5 5 25957 6405 15770 26287 26465 2 2 1 3 4 1 4 5 1 1 2 2 4 4 1 Sample Output 6405 15770 26287 25957 26287 Data Size 对于100%的数据满足:1≤N,M≤2⋅10^5 对于数列中的所有数ai,均满足−10^9≤ai≤10^9 题解: 这题的详细说明可以跳转 主席树学习笔记 #include <iostream> #include <cstdio> #include <algorithm> #define N 200005 using namespace std; struct T {int l, r, sum;} t[N << 5]; int n, m, dex, cnt; int a[N], b[N], r[N]; int read(

Hibernate对象持久化的三种状态

心不动则不痛 提交于 2019-12-04 00:17:05
1、三种状态: public static void testSel() { Session session = HibernateUtils.openSession(); Transaction transaction = session.beginTransaction(); Student student=new Student();//瞬时态 student.setSname("zzzz");//瞬时态 student.setSex("男");//瞬时态 student.setBirthday("2019-11-11");//瞬时态 student.setClassno("201911");//瞬时态 student.setPoint(111);//瞬时态 student.setPhone("1873496511");//瞬时态 student.setEmail("20171514@qq.com");//瞬时态 session.save(student);//持久化状态 transaction.commit(); session.close();//游离状态 } (1)游离态(没有id没有与session关联): (2)持久化态(有id,与session有关联),在事务没有提交之前变为持久态: 执行了session.save(student);后生成了id值

可持久化线段树

一个人想着一个人 提交于 2019-12-03 20:55:10
同步: https://buringstraw.win/archives/78/ 写了棵可持久化线段树,因为模拟赛里用到了主席树,而我却从来没写过。。。 凭借自己对当年上过的课的印象写的, 因为翻了很多博客没看懂 概述 每当有修改操作时,把需要修改的节点复制一份,在新复制的节点上完成修改操作。这里的修改也包括对点与点连接结构的修改。然后将每个版本的根节点存入 root 数组。 结构 这棵线段树需要动态开点,所以要有 struct struct node { int l, r;//对应的区间 int ch[2];//0:左儿子,1:右儿子 int v;//值 } c[MAXN]; 然后要有装初始元素的数组和 root 数组 int a[MAXN], root[MAXN]; 还要记录最新的节点和最新的版本 int newp, newv 操作 所有操作中都要注意:递归操作之后 newp 会改变 建树 跟普通线段树差不多 要先将根节点的 l , r 初始化好 root[++newv] = ++newp; scanf("%d%d", &n, &m); for (int i = 1; i <= n; ++i) { scanf("%d", a + i); } c[newp].l = 1; c[newp].r = n; void build (int p) { if (c[p].l == c[p]

Python中使用pickle持久化对象

假装没事ソ 提交于 2019-12-03 20:33:42
Python中可以使用 pickle 模块将对象转化为文件保存在磁盘上,在需要的时候再读取并还原。具体用法如下:   pickle. dump (obj, file[, protocol])   这是将对象持久化的方法,参数的含义分别为:   obj: 要持久化保存的对象;   file: 一个拥有 write() 方法的对象,并且这个 write() 方法能接收一个字符串作为参数。这个对象可以是一个以写模式打开的文件对象或者一个 StringIO 对象,或者其他自定义的满足条件的对象。   protocol: 这是一个可选的参数,默认为 0 ,如果设置为 1 或 True,则以高压缩的二进制格式保存持久化后的对象,否则以ASCII格式保存。   对象被持久化后怎么还原呢?pickle 模块也提供了相应的方法,如下:   pickle. load (file)   只有一个参数 file ,对应于上面 dump 方法中的 file 参数。这个 file 必须是一个拥有一个能接收一个整数为参数的 read() 方法以及一个不接收任何参数的 readline() 方法,并且这两个方法的返回值都应该是字符串。这可以是一个打开为读的文件对象、StringIO 对象或其他任何满足条件的对象。   下面是一个基本的用例: 01 # -*- coding: utf-8 -*- 02 03

rabbitmq

心不动则不痛 提交于 2019-12-03 20:29:49
一、简介:   RabbitMq 是实现了高级消息队列协议(AMQP)的开源消息代理中间件。消息队列是一种应用程序对应用程序的通行方式,应用程序通过写消息,将消息传递于队列,由另一应用程序读取 完成通信。而作为中间件的 RabbitMq 无疑是目前最流行的消息队列之一。 RabbitMq 应用场景广泛: 系统的高可用:日常生活当中各种商城秒杀,高流量,高并发的场景。当服务器接收到如此大量请求处理业务时,有宕机的风险。某些业务可能极其复杂,但这部分不是高时效性,不需要立即反馈给用户,我们可以将这部分处理请求抛给队列,让程序后置去处理,减轻服务器在高并发场景下的压力。 分布式系统,集成系统,子系统之间的对接,以及架构设计中常常需要考虑消息队列的应用。 二、RabbitMq 生产和消费 生产者(producter):队列消息的产生者,负责生产消息,并将消息传入队列 # -*- coding: utf-8 -*-import pikaimport jsonbroker_url = 'amqp://guest:guest@localhost:5672/'# credentials = pika.PlainCredentials('账号', '密码') # mq用户名和密码# connection = pika.BlockingConnection(pika

LG3834 可持久化线段树1

我们两清 提交于 2019-12-03 17:36:25
题意 给定 \(N\) 个整数构成的序列,将对于指定的闭区间查询其区间内的第 \(K\) 小值。 $n \leq 2 \times 10^5 $ 思路 在 \([l,r]\) 区间内的数的个数,可以用 \(sum[r]-sum[l]\) 来计算,这样的话就很容易想到要开n棵权值线段树,但是一看范围,很显然会 \(mle\) ,于是就有一个叫主席树的东西出现了。 当新插入一个数的时候,会发现,只有一条路径上的 \(sum\) 会发生变化,其实只要复制这一条路径上的结点就好了。 插入时,如果它对右儿子无影响,那么将它的右儿子指向原先的树,左儿子继续进行插入操作,反之亦然。查找时用到差分进行左右路径的选择,一直走下去就好了。 #include <bits/stdc++.h> using namespace std; const int N=200005; int n,m,a[N],b[N],s1[N*40],s2[N*40],sum[N*40],T[N],l,r,x,tot,n2; int update(int pre,int l,int r,int x){ int rt=++tot; s1[rt]=s1[pre],s2[rt]=s2[pre],sum[rt]=sum[pre]+1; if (l>=r) return rt; int mid=(l+r)>>1; if (x<=mid)

P3834 【模板】可持久化线段树 1(主席树)

半城伤御伤魂 提交于 2019-12-03 10:35:35
P3834 【模板】可持久化线段树 1(主席树) 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int maxn = 2e5+5; 4 int n, q, m, cnt = 0; 5 int a[maxn], b[maxn], T[maxn]; 6 int sum[maxn<<5], L[maxn<<5], R[maxn<<5]; 7 inline int build(int l, int r) { 8 int rt = ++cnt; 9 sum[rt] = 0; 10 if (l < r) { 11 int mid = (l+r)/2; 12 L[rt] = build(l, mid); 13 R[rt] = build(mid+1, r); 14 } 15 return rt; 16 } 17 inline int update(int pre, int l, int r, int x) { 18 int rt = ++cnt; 19 L[rt] = L[pre]; R[rt] = R[pre]; sum[rt] = sum[pre]+1; 20 if (l < r) { 21 int mid = (l+r)/2; 22 if (x <= mid) L[rt] = update(L[pre], l, mid,