Sequence

odoo开发笔记 -- 权限机制

☆樱花仙子☆ 提交于 2020-07-28 07:49:14
转两篇关于权限的2篇文章,加深这方面的认识。注:后面附有原作者地址,希望不构成侵权。 https://www.cnblogs.com/crazyguo/p/6999408.html 第一篇:http://www.cnblogs.com/dancesir/p/6994030.html Odoo的权限的核心是权限组(res_groups)。对每个权限组,可以设置权限组的菜单表示,对象表示,记录规则表示,字段表示。 1.菜单/对象级别 设置哪些人可以访问哪些菜单/对象,对象的访问权限包括创建、读、写、删除。 2.记录级别 设置哪些人可以访问哪些记录,也就是设置表的查询条件。 3.字段级别 设置表中的字段的访问权限。 4.工作流级别 在工作流的每一步迁移中,设置哪些角色允许触发本迁移 菜单/对象级别: 模块下 security 目录有两个文件:xxx_security.xml、ir.model.access.csv。 其中: xxx_security.xml文件定义组和组对菜单的访问权限, ir.model.access.csv定义组对对象的权限矩阵。<br><br> <data noupdate="0"> <record model="ir.module.category" id="module_category_test"> <field name="name">测试</field>

@Java知识点--Stream

别说谁变了你拦得住时间么 提交于 2020-07-28 07:04:12
概览 java8中有两个非常有名的改进,一个是Lambda表达式,一个是Stream。 Stream就是一个流,他的主要作用就是对集合数据进行查找过滤等操作。有点类似于SQL的数据库操作。Stream和Collection的区别就是:Collection只是负责存储数据,不对数据做其他处理,主要是和内存打交道。但是Stream主要是负责计算数据的,主要是和CPU打交道。 Stream语法讲解 Stream执行流程很简单,主要有三个,首先创建一个Stream,然后使用Stream操作数据,最后终止Stream。有点类似于Stream的生命周期。 @Data public class Student { private Integer id; private String name; private Integer age; private Double score; Student(Integer id, String name, Integer age, Double score){ this.id = id; this.name = name; this.age = age; this.score = score; } } 1.创建一个Stream default Stream stream() : 返回一个顺序流 default Stream parallelStream()

计算机网络常考知识点整合

大兔子大兔子 提交于 2020-07-28 06:06:02
这里跟大家分享下我复习时整理的计算机网络常考知识点。 网络协议 OSI7层模型 物理层:传输物理比特 数据链路层:将比特封装成帧 网络层:将网络地址翻译成物理地址,路由选择。路由器。分组:数据报。IP协议 传输层:将大数据分割传给网络层,流量控制。TCP,UDP协议 会话层:建立应用程序的通讯 表示层:解决不同系统间通信语法问题 应用层:通过应用进程间的交互来完成特定网络应用,报文 TCP/IP4层模型(相比5层少一个物理层) 物理层: 物理层(physical layer)的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。 链路层: 两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。数据报组装成帧。 网络层: 网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。数据报, IP 传输层: 负责向两台主机进程之间的通信提供通用的数据传输服务,TCP/UDP 应用层: 通过应用进程间的交互来完成特定网络应用,报文,HTTP,DNS,SMTP 三次握手 tcp报文头: Sqquence Number:4字节,报文序号,若当前107带了100字节,则下一次序号207。 Acknowledgment Number:4字节,期望收到下一个报文的下一个字节序好,B发送了201序号300字节的数据

技术分享 | 回顾 MySQL 的 MTS

梦想与她 提交于 2020-07-28 04:40:42
作者:洪斌 爱可生南区负责人兼技术服务总监,MySQL ACE,擅长数据库架构规划、故障诊断、性能优化分析,实践经验丰富,帮助各行业客户解决 MySQL 技术问题,为金融、运营商、互联网等行业客户提供 MySQL 整体解决方案。 本文来源:转载自公众号-玩转MySQL *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 MySQL 并行回放在一路改进,从 5.6 的 schema 并行,到 5.7 的 group commit,再到 8.0 的 write set。 MTS based on schema 这种方式不用多说,涉及不同 schema 的 DML 操作,在 slave 端可以按 schema 粒度并行回放,弱点也很明显,如果实例中的 schema 较少,并行回放效果并不理想。 其优化方式也比较简单 slave_parallel_workers 小于等于 master 的 schema 数量。 LOGICAL_CLOCK MySQL 5.7 增加了基于 group commit 的并行回放策略,使得 slave 可以接近 master 同样并发回放事务,master 并发越高,slave 并行回放效果越明显。 在 binlog 中每个事务会有多出两个标签 **sequence_number:**随每个事务递增的自增 ID,每次新的 binlog

Disruptor介绍

╄→尐↘猪︶ㄣ 提交于 2020-07-28 01:45:06
Disruptor是什么? Disruptor是一个高性能的异步处理框架,或者可以认为是最快的消息框架(轻量的JMS),也可以认为是一个观察者模式的实现,或者事件监听模式的实现。 获得2011 Duke’s 程序框架创新奖,能够在无锁的情况下实现网络的Queue并发操作。 Disruptor能做什么? 从功能上来看,Disruptor 是实现了“队列”的功能,而且是一个有界队列。那么它的应用场景自然就是“生产者-消费者”模型的应用场合了。 可以拿 JDK 的 BlockingQueue 做一个简单对比,以便更好地认识 Disruptor 是什么。 我们知道 BlockingQueue 是一个 FIFO 队列,生产者(Producer)往队列里发布(publish)一项事件(或称之为“消息”也可以)时,消费者(Consumer)能获得通知;如果没有事件时,消费者被堵塞,直到生产者发布了新的事件。 这些都是 Disruptor 能做到的,与之不同的是,Disruptor 能做更多: 同一个“事件”可以有多个消费者,消费者之间既可以并行处理,也可以相互依赖形成处理的先后次序(形成一个依赖图); 预分配用于存储事件内容的内存空间; 针对极高的性能目标而实现的极度优化和无锁的设计; 以上的描述虽然简单地指出了 Disruptor 是什么,但对于它“能做什么”还不是那么直截了当。一般性地来说

redo 恢复的几种方式

吃可爱长大的小学妹 提交于 2020-07-27 22:23:47
操作系统版本: [oracle@enmotech ~]$ cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.7 (Maipo) 数据库版本 [oracle@enmotech ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on 星期日 5月 31 10:23:55 2020 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. 连接到: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 redo0日志的状态 列有四种状态: current: 当前日志组对应的脏块还没有全部从 data buffer 写入到 data file,含有实例恢复需要的信息,不能被覆盖 active: 日志组对应的脏块还没有完全从 data buffer 写入到 data file,含有实例恢复需要的信息,不能被覆盖 inactive; 日志组对应的脏块已经从 data buffer 写入到 data file,可以覆盖

第18天:Python 高阶函数

别说谁变了你拦得住时间么 提交于 2020-07-27 12:26:00
by 小小摸虾 函数式编程现在逐渐被广大开发群体接受,越来越多的开发者门开始使用这种优雅的开发模式,而我们使用函数式编程最主要的是需要清楚: 什么是高阶函数( Higher-order Functions )? Python 中高阶函数有哪些?要怎么用? 高阶函数概念 在函数式编程中,我们可以将函数当作变量一样自由使用。一个函数接收另一个函数作为参数,这种函数称之为高阶函数。 举个例子: def high_func(f, arr): return [f(x) for x in arr] 上面的例子中, high_func 就是一个高阶函数。其中第一个参数 f 是一个函数,第二个参数 arr 是一个数组,返回的值是数组中的所有的值在经过 f 函数计算后得到的一个列表。例如: from math import factorial def high_func(f, arr): return [f(x) for x in arr] def square(n): return n ** 2 # 使用python自带数学函数 print(high_func(factorial, list(range(10)))) # print out: [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880] # 使用自定义函数 print(high_func

MySQL 异常—— InnoDB 引擎故障

走远了吗. 提交于 2020-07-27 09:20:45
异常来源 机房服务器异常掉电,通电后,MySQL无法启动。报错如下: 2020-05-11T10:30:09.270993Z 0 [ERROR] InnoDB: Unable to lock ./ibdata1 error: 11 2020-05-11T10:30:09.271053Z 0 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files. 2020-05-11T10:30:10.271250Z 0 [ERROR] InnoDB: Unable to lock ./ibdata1 error: 11 2020-05-11T10:30:10.271344Z 0 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files. 2020-05-11T10:30:11.271475Z 0 [ERROR] InnoDB: Unable to lock ./ibdata1 error: 11 2020-05-11T10:30:11.271517Z 0

第31天:python random

久未见 提交于 2020-07-27 04:52:23
by 千阳 在本节中继续介绍 Python 提供的常用模块 random 模块,它的主要功能是用来生成伪随机数的。 random 模块 Python 提供的 random 模块实现了各种分布式的伪随机数生成器。该模块主要包含以下几种常用的函数。 random()函数 random() 函数可以随机生成一个[0,1)的浮点数。例如: import random print(random.random()) 0.7258069853437111 randint(a,b)函数 randint(a,b) 函数可以在指定范围内随机生成一个整数,其中参数a是下限,参数 b 是上限,生成的随机数n:a <= n <= b。例如: import random print(random.randint(5,50)) 37 uniform(a,b)函数 uniform(a,b) 函数可以在指定范围内随机生成一个浮点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: b <= n <= a。如果 a <b, 则 a <= n <= b。 import random print(random.uniform(2,5)) print(random.uniform(5,2)) 4.400555757352024 3.4262178434528874 sample(sequence, k

一入职!就遇到上亿(MySQL)大表的优化....

落花浮王杯 提交于 2020-07-27 03:39:44
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! jia-xin背景 XX实例(一主一从)xxx告警中每天凌晨在报SLA报警,该报警的意思是存在一定的主从延迟(若在此时发生主从切换,需要长时间才可以完成切换,要追延迟来保证主从数据的一致性) XX实例的慢查询数量最多(执行时间超过1s的sql会被记录),XX应用那方每天晚上在做删除一个月前数据的任务 分析 使用pt-query-digest工具分析最近一周的mysql-slow.log select arrival_record操作记录的慢查询数量最多有4万多次,平均响应时间为4s,delete arrival_record记录了6次,平均响应时间258s。 select xxx_record语句 select arrival_record 慢查询语句都类似于如下所示,where语句中的参数字段是一样的,传入的参数值不一样 select count(*) from arrival_record where product_id=26 and receive_time between '2019-03-25 14:00:00' and '2019-03-25 15:00:00' and receive_spend_ms>=0G 查看执行计划 explain select