准备工作

安装依赖

build.gradle文件中的 dependencies下加入下列两行

implementation "org.apereo.cas:cas-server-support-rest:${casServerVersion}"
implementation "org.apereo.cas:cas-server-support-rest-services:${casServerVersion}"

设置权限

在配置文件cas.progerties中加入两行

cas.rest.attributeName=personRole
cas.rest.attributeValue=ROLE_ADMIN

意思是用户的属性名字personRole的值是ROLE_ADMIN的,才可以使用接口创建service

阅读全文 »

函数

函数声明

函数声明包括函数名、形式参数列表、返回值列表(可省略)以及函数体。

func name(parameter-list) (result-list) {
body
}

下面是几种声明示例:

func add(x int, y int) int { return x + y }
func sub(x, y int) (z int) { z = x -y; return }
func first(x int, _ int) int { return x }
func zero(int, int) int { return 0 }

函数声明上的参数称作形参,传入函数的参数称作实参。

  • 形参:都是函数的局部变量,初始值由调用者提供的实参传递
  • 实参:按值传递,函数接受到的是实参的副本,所以修改函数的形参并不会影响到实参。但是如果提供的实参包含引用类型,比如指针、slice、map、函数或者通道,那么函数使用形参变量时就有可能会间接的修改实参。
阅读全文 »

复合数据类型

数组和结 构体都是有固定内存大小的数据结构。相比之下,slice和map则是动态的数据结构,它们将根据需要动态增长。

阅读全文 »

Go语言将数据类型分为四类:

  • 基础类型
    • 数字
    • 字符
    • 布尔型
  • 复合类型
    • 数组
    • 结构体
  • 引用类型
    • 指针
    • 切片
    • 字典
    • 函数
    • 通道
    • 接口类型
阅读全文 »

一般配置文件路径在C:\Users\<username>下的_vimrc,如果没有,可以自己新建一个。

vim的安装路径下会有一个配置示范文件vim82/vimrc_example.vim

vim的安装路径下会有一个配置文件 _vimrc

阅读全文 »

hexo虽然有git-deploy插件, 但是这一点都不优雅!也不方便, 你本地还是需要安装所有的依赖才行。

所以这里我们使用git action, 完成自动化部署,只需要提交commit之后,git自动就会完成部署博客

阅读全文 »

很多时候在外网看到不错的视频,会想下载下来收藏,或者看到不错的素材会需要下载下来做视频。但是官方没有提供下载的地方。简单的方法也找不到资源的真实地址。这里就介绍一个神器, you-get, github地址

阅读全文 »

百度搜索的结果都是经过百度加密后的,百度转发的接口,如:

https://www.baidu.com/link?url=OFSePiUaUzt-d1-kvP1krU2_5R3aKLA6otU2dyxBsnQly9jKiOeBRPNvQwiqu8RpfUnikb_H0QPTxDTxjUuJFq&wd=&eqid=eb0976a0000a7edd000000046066a7e8

这里使用python代码获取真实地址

import requests
from urllib import parse

def get_baidu_true_url(link):
parsed = parse.urlsplit(link)
query_dict = parse.parse_qs(parsed.query)
pared_url = f"{parsed.scheme}://{parsed.netloc}/link?url={query_dict['url'][0]}"
return requests.head(pared_url, allow_redirects=True, timeout=10).url


origin_url = "https://www.baidu.com/link?url=qp6atoWSri_evr-3pXTNtukV8ynHxUEcPP9pLrKXY_FTDhN3mo9tnRDmVLaViI8dHrL90S9fTypnoJJXyWyDutWquVvbb7Yi4pTFeqd-9CW&wd=&eqid=9492278500108bd8000000046066a6ac"

get_baidu_true_url(origin_url)
# 'https://blog.yueyawochong.cn/tags/%E7%B3%BB%E7%BB%9F/'

前言

一般在centos上部署服务使用supervisor,但是在window上无法使用,几经搜索之后发现了nssm, 官网

使用nssm达成服务化

  • 1.解压nssm到C盘底下(c:64最好加入环境目录)
  • 2.安装服务

安装beat

nssm install celery-beat “c:\python36\scripts\celery.exe”
nssm set celery-beat AppDirectory c:\project_path
nssm set celery-beat AppParameters -A project_name beat -l info --logfile=c:\project_path\logs\beat.log --pidfile=c:\project_path\logs\beat.pid

安装worker

nssm install celery-worker “c:\python36\scripts\celery.exe”
nssm set celery-worker AppDirectory c:\project_path
nssm set celery-worker AppParameters -A project_name worker -Q default -P gevent --concurrency=8 -l debug --logfile=c:\project_path\logs\worker.log --pidfile=c:\project_path\logs\worker.pid

安装web服务

nssm install web “c:\python36\python.exe”
nssm set web AppDirectory c:\project_path
nssm set web AppParameters manage.py runserver

nssm start celery-beat
nssm start celery-worker
nssm start web

# 查看状态
nssm status celery-beat
nssm status celery-worker
nssm status web

可以使用图形化修改参数

nssm edit celery-beat
0%