版本 url中通过GET传参自定义的版本 12345678910111213141516171819202122 from django.http import HttpResponsefrom django.shortcuts import render # Create your views here.from rest_framework.views import APIViewfrom rest_framework.request import Request class ParamVe…
作为启动流程中第二个启动的组件,我们今天来看看Sink的细节 1 Sink Sink在agent中扮演的角色是消费者,将event输送到特定的位置 首先依然是看代码,由代码我们可以看出Sink是一个接口,里面最主要的方法是process(),用来处理从Channel中获取的数据.Sink的实例是由SinkFactory.create()生成的. @InterfaceAudience.Public @InterfaceStability.Stable public interface Sink e…
如果你还没看过Flume-ng源码解析系列中的启动流程.Channel组件和Sink组件,可以点击下面链接: Flume-ng源码解析之启动流程 Flume-ng源码解析之Channel组件 Flume-ng源码解析之Sink组件 在前面三篇文章中我们初步了解了Flume的启动流程.Channel组件和Sink组件,接下来我们一起来看看agent三大组件中Source组件. 1 Source Source,作为agent中的消息来源组件,我们来看看它是如何将event传递给channel的和它的…
admin源码解析 单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场. 比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 的类来读取配置文件的信息.如果在程序运行期间,有很多地方都需要使用配置文件的内容,也就是说,很多地方都需要创建 AppConfig 对象的实例,这就导致系统中存在多个 AppConfig 的实例…
  Spring Boot 一个重要的特点就是自动配置,约定大于配置,几乎所有组件使用其本身约定好的默认配置就可以使用,大大减轻配置的麻烦.其实现自动配置一个方式就是使用@Enable*注解,见其名知其意也,即"使什么可用或开启什么的支持". Spring Boot 常用@Enable* 首先来简单介绍一下Spring Boot 常用的@Enable*注解及其作用吧. @EnableAutoConfiguration 开启自动扫描装配Bean,组合成@SpringBootApplica…
如果还没看过Flume-ng源码解析之启动流程,可以点击Flume-ng源码解析之启动流程 查看 1 接口介绍 组件的分析顺序是按照上一篇中启动顺序来分析的,首先是Channel,然后是Sink,最后是Source,在开始看组件源码之前我们先来看一下两个重要的接口,一个是LifecycleAware ,另一个是NamedComponent 1.1 LifecycleAware @InterfaceAudience.Public @InterfaceStability.Stable public…
drf的权限类位于permission模块   如何确定权限 认证.限流,权限决定是否应该接收请求或拒绝访问 权限检查在视图的最开始处执行,在继续执行其他代码前 权限检查通常会使用request.user和request.auth属性中的身份认证信息来决定是否允许请求 不同级别的用户访问不同的api过程中,使用权限来控制访问的许可 DRF框架的权限被定义为一个权限类的列表,表示拥有列表中所有类型的权限 在运行视图代码主体之前,会检查列表中的每个权限 任何一个权限检查失败的话,会抛出 except…
一直很好奇Robot Framework 是如何通过关键字驱动进行测试的,好奇它是如何支持那么多库的,好奇它是如何完成截图的.所以就打算研究一下它的源码. 这是官方给出的Robot framework模块化结构: 它的用法暂且不说,网上有很多. 这是我的一个实例.“打开浏览器,baidu搜索一个字符串.” Robot Framework有很多入口点,比如 1. java -jar robotframework.jar test.robot 2. robot path/to/tests.robot…
版本 新建一个工程Myproject和一个app名为api (1)api/models.py from django.db import models class UserInfo(models.Model): USER_TYPE = ( (1,'普通用户'), (2,'VIP'), (3,'SVIP') ) user_type = models.IntegerField(choices=USER_TYPE) username = models.CharField(max_length=32,u…
我们再来看 src/robot/run.py 的工作原理.摘录部分代码: from robot.conf import RobotSettings from robot.model import ModelModifier from robot.output import LOGGER, pyloggingconf from robot.reporting import ResultWriter from robot.running import TestSuiteBuilder from ro…