落雁沙
吹牛逼大王
  • gitlab配置邮件通知服务

    在使用gitlab的时候,我们会需要用邮件来注册验证,所以,邮件服务是需要配置的。 vi /etc/gitlab/gitlab.rb gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.qiye.aliyun.com" gitlab_rails['smtp_port'] = 25 gitlab_rails['smtp_user_name'] = "gitlab@moensun.com" gitlab_rails['smtp_password'] = "xxxx" gitlab_rails['smtp_domain'] = "moensun.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_star...
    • 0
    • 6
    • 0
    • 2019-09-14
  • mobx的初步使用

    最近开启一个新的项目,框架是react。但是在选择数据状态管理的时候,有点选择困难了。 总的说来,react状态管理,有如下几种: react-redux 写起来太过繁琐 dva 集成度太高,版本老旧,虽然是阿里的产品,但是目前基本处于不维护状态 rematch 作者不维护了 mobx 其实,前三个都是redux或者对redux的封装,mobx的另外一种模式,具体的区别,不赘述。 场景,我们设计一个全局的状态管理 1.添加依赖 "mobx": "^4.0.0", "mobx-react": "^5.0.0", "mobx-react-devtools": "^5.0.0", 2.定义一个store import {observable, computed, action} from 'mobx'; export default class CtxStore{ @observabl...
    • 0
    • 30
    • 0
    • 2019-09-08
  • kotlin和java混合编码的时候遇到的坑

    在用kotlin做spring boot的项目的时候,因为properties的类,如果用kotlin写的话,idea没法自动提示。所以我是用Java去编写的properties的。但是,这样会有一个问题,就是这种混编的情况下,如果在kotlin类中引用java的类,在idea下执行没什么问题,但是在用java命令执行的时候,会报类找不到。 报错信息 java.lang.ClassCastException: java.lang.ClassNotFoundException cannot be cast to [Ljava.lang.Object;        at org.springframework.boot.context.properties.EnableConfigurationPropertiesImportSelector$ConfigurationPropertiesB...
    • 0
    • 10
    • 0
    • 2019-09-02
  • spring boot 不同name的@Cacheable独立设置属性

    我们在spring中使用缓存的时候,一般都是使用@Cacheable注解做的,但是,如果要做一些个性化的配置,大多还是选择了直接操作redisTempalte。 之前有类似需求的时候,还参考spring的redis实现,单独写了一套缓存注解以及实现。其实,spring的缓存是支持针对value对每个缓存空间进行独立的设置的。 在RedisCacheManager 这个类下面,有这么一个构造方法。 /** * Creates new {@link RedisCacheManager} using given {@link RedisCacheWriter} and default * {@link RedisCacheConfiguration}. * * @param cacheWriter must not be {@literal null}. * @param defaul...
    • 0
    • 25
    • 0
    • 2019-08-30
  • flink之TimeWindow

    在流处理应用中,数据是连续不断的,因此我们不可能等到所有数据都到了才开始处理。当然我们可以每来一个消息就处理一次,但是有时我们需要做一些聚合类的处理。 窗口可以是时间驱动的(Time Window,例如:每30秒钟),也可以是数据驱动的(Count Window,例如:每一百个元素)。一种经典的窗口分类可以分成:翻滚窗口(Tumbling Window,无重叠),滚动窗口(Sliding Window,有重叠),和会话窗口(Session Window,活动间隙)。 从网络找了一张图,基本可以代表各种window。 Time Window Time Window 是根据时间对数据流进行分组的。各种概念,此处不赘述。 基于之前kafka datasource的代码,我们写一个timeWindow的demo,统计每分钟收到的消息条数。 首先将之前的,kafka的数据发送频率降低到3s每次。 C...
    • 0
    • 19
    • 0
    • 2019-08-29
  • git拉取远程所有分支代码到本地

    git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done git fetch --all git pull --all
    • 0
    • 12
    • 0
    • 2019-08-24
  • 如何将域名绑定到nas上的gitlab,并解决ssh的转发问题

    在nas上搭建了一个gitlab服务,但是域名是威联通的二级域名,感觉用的不爽,还是想用自己的域名。 于是,从阿里云上通过nginx 做反向代理,指向到nas 的gitlab域名。这样的话,如果通过http访问,是没有问题的了,但是,如果想通过ssh 去访问Git ,还是不行。因为ssh 默认是22端口。但是,22端口是被占用的。 得益于nginx 提供了stream模块,可以进行tcp的转发。所以从这个方面去考虑。首先,使用,实现tcp的转发。nas 上把gitlab的22端口映射到了32782端口。 events { worker_connections 1024; } stream { upstream gitlab { least_conn; server xxxx.myqnapcloud.cn:32782; } ...
    • 0
    • 22
    • 0
    • 2019-08-24
  • 如何在静态函数中,执行react路由的跳转

    在项目中,我们在进行登录状态校验的时候,如果发现未登录,要执行登录页面的跳转。 在react单页应用中,一般情况下,我们可以再组件的props中获取到history,然后执行跳转。 比如这样。 handleSignInSuccess = (value)=>{ const {history,dispatch} = this.props; history.push(`/admin`); }; 但是,如果我们使用asxios做ajax请求的时候,我们就可以在拦截器中进行处理。那么,怎么在静态函数中怎么处理呢。 通过history即可。 npm install history --save /** * Created by 落雁沙 * Copyright MoenSun * User: Bane.Shi * Blog: http://www.ithere.net/fen...
    • 1
    • 31
    • 2
    • 2019-08-18
  • 通过消抖(debounce)方法,解决resize事件触发元素计算无效的问题

    有些业务场景下,我们需要监听window 或者元素的resize事件。 上次做antd的table的最大高度展示的时候,遇到一个情况,因为是通过监听window和parent的resize事件,再去执行高度计算的。正常拖拽浏览器,去改变窗口大小,这种情况是没有问题的。 但是,如果我打开浏览器的控制台,window大小依旧变化了,但是,高度计算却没有达到理想效果。 解决办法,就是用lodash的debounce方法来处理。 $(window).resize(_.debounce(me.computeY,200)); 这个问题的,主要原因,大概是因为,我们在手动拖拽的时候,resize是持续触发的,元素也会持续渲染。但是,在开启控制台的时候,只触发一次,元素没有渲染好的时候,就去执行了高度计算。所以使用debounce 可以解决这个问题。 描述可能有些不到位,毕竟不是专业前端,请大佬指正。
    • 0
    • 29
    • 2
    • 2019-08-08
  • kotlin 协程

    之前学习golang的时候,很多人说Golang的强大很多是因为它的协程。最近看到kotlin也是有协程的,而且,项目中也用了kotlin,所以,需要学习下kotlin的协程。 1.什么是协程 协程是一个轻量级的线程。 优点:省去了传统 Thread 多线程并发机制中,切换线程时带来的 线程上下文切换,线程状态切换,Thread 初始化带来的性能损耗,能大幅度提高并发性能。 也就是说,即使是单线程也是可以使用协程的。 2.添加依赖 <dependency> <groupId>org.jetbrains.kotlinx</groupId> <artifactId>kotlinx-coroutines-core</artifactId> <version>1.3.0-RC</version> </dependency> 3.协程api launch - 创建协程 as...
    • 0
    • 28
    • 0
    • 2019-08-08
文章分组
暂无数据