<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ClownG的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ClownG</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ClownG]]></copyright><item><title><![CDATA[Golang 配置文件库 Viper和ini]]></title><link>https://blog.youkuaiyun.com/ClownG/article/details/124931234</link><guid>https://blog.youkuaiyun.com/ClownG/article/details/124931234</guid><author>ClownG</author><pubDate>Mon, 23 May 2022 17:41:49 +0800</pubDate><description><![CDATA[Golang 配置文件库 Viper和ini

这是一个简单使用golang配置文件库的记录，如果有问题，欢迎指出

一、Viper

viper 是一个完整的 Go应用程序的配置解决方案，它被设计为在应用程序中工作，并能处理所有类型的配置需求和格式。


下载命令
go get github.com/spf13/viper

viper支持特性功能如下：
设置默认值
读取 JSON、TOML、YAML、HCL、envfile和 Java属性的配置文件
监控配置文件改动，并热加载配置文件
从环境变量中读取
]]></description><category></category></item><item><title><![CDATA[supervisor管理uwsgi程序]]></title><link>https://blog.youkuaiyun.com/ClownG/article/details/122542338</link><guid>https://blog.youkuaiyun.com/ClownG/article/details/122542338</guid><author>ClownG</author><pubDate>Mon, 17 Jan 2022 16:27:25 +0800</pubDate><description><![CDATA[supervisor管理uwsgi程序

使用supervisor管理uwsgi进程相关配置

1.下载安装supervisor(此示例在ubuntu环境)
apt-get install supervisor

安装成功后，会在/etc/supervisor目录下，生成supervisord.conf配置文件
可以在conf.d 目录下根据自己的需求来创建程序对应的.conf文件(该目录下文件都已被supervisord.conf包含)
2.配置相关文件
示例配置文件
[unix_http_server]]]></description><category></category></item><item><title><![CDATA[关于uwsgi重启之后进程或线程未清理干净设置文件]]></title><link>https://blog.youkuaiyun.com/ClownG/article/details/122542165</link><guid>https://blog.youkuaiyun.com/ClownG/article/details/122542165</guid><author>ClownG</author><pubDate>Mon, 17 Jan 2022 16:11:51 +0800</pubDate><description><![CDATA[关于uwsgi重启之后进程或线程未清理干净设置文件

在生产环境中遇到了一些问题，场景如下:
如果代码有相关的更新，则需要重新启动代码，将代码更新至最新版本，但是业务代码中有一些线程在运行其他的东西，那么这些线程在重启的时候可能不会被kill掉，导致内存一直累计增加.

在uwsgi的相关配置文件中加入下列配置:
reload-mercy = 1
worker-reload-mercy = 1

这样的话在停止uwsgi的时候就不会导致部分进程或者线程没有终止了。

...]]></description><category></category></item><item><title><![CDATA[ubuntu 环境下shell命令切换conda环境]]></title><link>https://blog.youkuaiyun.com/ClownG/article/details/122534688</link><guid>https://blog.youkuaiyun.com/ClownG/article/details/122534688</guid><author>ClownG</author><pubDate>Mon, 17 Jan 2022 10:31:05 +0800</pubDate><description><![CDATA[ubuntu 环境下shell命令切换conda环境

在.sh文件中切换相关环境来启动服务的时候会报无conda命令

CommandNotFoundError: No command 'conda'.
这个时候可以使用source命令来手动从路径中激活环境从而实现服务启动部署
#!/bin/bash
echo 'starting project'
source /home/yourpath/anaconda3/etc/profile.d/conda.sh
conda activate yourEnv_n]]></description><category></category></item><item><title><![CDATA[Nginx + Uwsgi + flask 部署服务访问不到问题解决]]></title><link>https://blog.youkuaiyun.com/ClownG/article/details/120204847</link><guid>https://blog.youkuaiyun.com/ClownG/article/details/120204847</guid><author>ClownG</author><pubDate>Thu, 09 Sep 2021 17:39:14 +0800</pubDate><description><![CDATA[Nginx + Uwsgi + flask 部署服务访问不到问题解决过程

近日需要做服务迁移，所以需要重新部署服务，但是当服务部署之后启动，没有报错，但是无法访问，网页显示 502 Gate way.

1. 首先排查uwsgi的启动日志

确定服务启动正常，以及nginx服务正常
2.排查nginx的配置文件
sudo nginx -tc /etc/nginx/sites-enabled/default.conf
3.查看Nginx是否启动以及是否监听设置端口

netstat -tunlp 查看端口监]]></description><category></category></item><item><title><![CDATA[在linux系统上运行python 脚本]]></title><link>https://blog.youkuaiyun.com/ClownG/article/details/118493683</link><guid>https://blog.youkuaiyun.com/ClownG/article/details/118493683</guid><author>ClownG</author><pubDate>Mon, 05 Jul 2021 17:06:48 +0800</pubDate><description><![CDATA[在linux系统上运行python 脚本

如何在linux系统上运行python脚本

1. 首先需要把你自己想要运行的脚本上传或者创建出来
这边创建文件的话使用 touch 命令
例：
touch test.py
然后需要赋予该文件执行权限
chmod +x test.py

然后使用vim命令编辑你的脚本

2.执行方式

方法一 : 直接使用环境变量中的python环境

进入到脚本所在的路径直接使用如下命令
python test.py 
此处的python 根据你所安装的版本也可以改为pytho]]></description><category></category></item><item><title><![CDATA[条件if语句的多种写法]]></title><link>https://blog.youkuaiyun.com/ClownG/article/details/113995486</link><guid>https://blog.youkuaiyun.com/ClownG/article/details/113995486</guid><author>ClownG</author><pubDate>Tue, 23 Feb 2021 17:01:57 +0800</pubDate><description><![CDATA[条件语句(if-else)的多种写法

在写一些条件语句的时候可以根据自己的喜好选择写法，而不是千篇一律的第一种写法，也可以提高代码的美观程度;后几种酌情使用????????????????

写法1 :
if age &gt; 18:
    return "已成年"
else:
    return "未成年"
# 最常见普通的条件语句写法

写法2 :
语法： &lt;on_true&gt; if &lt;condition&gt; else &lt;on_false&gt;

example:
&g]]></description><category></category></item><item><title><![CDATA[Ubuntu部署Rabbitmq]]></title><link>https://blog.youkuaiyun.com/ClownG/article/details/109022092</link><guid>https://blog.youkuaiyun.com/ClownG/article/details/109022092</guid><author>ClownG</author><pubDate>Mon, 12 Oct 2020 10:35:38 +0800</pubDate><description><![CDATA[????????????????

由于RabbitMQ需要Erlang语言的支持,所以需要在安装rabbitmq之前先安装Erlang环境,我的环境是Ubuntu18.04

1.Erlang环境的安装
sudo apt-get install erlang-nox

2.RabbitMQ的安装

首先将源进行更新

sudo apt-get update


然后进行服务的安装

sudo apt-get install rabbitmq-server

3.在完成了安装之后需要新建用户然后赋予权限

]]></description><category></category></item><item><title><![CDATA[时序数据库InfluxDB学习笔记]]></title><link>https://blog.youkuaiyun.com/ClownG/article/details/108979123</link><guid>https://blog.youkuaiyun.com/ClownG/article/details/108979123</guid><author>ClownG</author><pubDate>Sat, 10 Oct 2020 16:30:51 +0800</pubDate><description><![CDATA[时序数据库介绍和使用
1. 基础
1.1 关于时序数据的定义内容

时间序列数据(Time Series Data, TSD),从定义上来说,就是一串按照时间维度索引的数据.这一串数据描述了某个被测量的主题在一个时间范围内的每个时间点上的测量值.

对时序数据进行建模的话，会包含三个重要部分，分别是：主体，时间点和测量值。套用这套模型，你会发现你在日常工作生活中，无时无刻不在接触着这类数据。

如果你是一个股民，某只股票的股价就是一类时序数据，其记录着每个时间点该股票的股价。
如果你是一个运维人员，监控数.]]></description><category></category></item><item><title><![CDATA[Python Tricks(python 的一些小技巧)后续会慢慢更新~~~]]></title><link>https://blog.youkuaiyun.com/ClownG/article/details/108777653</link><guid>https://blog.youkuaiyun.com/ClownG/article/details/108777653</guid><author>ClownG</author><pubDate>Sun, 27 Sep 2020 10:20:24 +0800</pubDate><description><![CDATA[Python Tricks
????????????????????
1.How to merge two dictionaries
#合并两个字典
&gt;&gt;&gt; x = {'a': 1, 'b': 2}
&gt;&gt;&gt; y = {'b': 3, 'c': 4}

&gt;&gt;&gt; z = {**x, **y}
&gt;&gt;&gt; z
{'c': 4, 'a': 1, 'b': 3}
#In Python 2.x you could
#use this:
&gt;&gt;]]></description><category></category></item><item><title><![CDATA[西瓜书机器学习笔记(一)]]></title><link>https://blog.youkuaiyun.com/ClownG/article/details/108600065</link><guid>https://blog.youkuaiyun.com/ClownG/article/details/108600065</guid><author>ClownG</author><pubDate>Thu, 24 Sep 2020 16:35:10 +0800</pubDate><description><![CDATA[记录学习机器学习的过程,方便自己以后查阅;

一.机器学习
机器学习是一门致力研究如何通过计算的手段,利用经验来改善系统自身的性能的学科;在计算机系统中,“”经验通常以“数据”形式存在,因此,机器学习所研究的主要内容是关于在计算机上从数据中产生“模型”的算法,即“学习算法”(learning algorithm).通过经验数据可以基于数据产生模型.在面对新的数据时,可以提供相应的判断.

二.一些概念知识

用来训练模型的数据集叫做训练集,用来测试模型性能的数据集叫测试集或验证集.但是可能存在一个和训练集.]]></description><category></category></item><item><title><![CDATA[Uwsgi部署flask&Django项目]]></title><link>https://blog.youkuaiyun.com/ClownG/article/details/108281899</link><guid>https://blog.youkuaiyun.com/ClownG/article/details/108281899</guid><author>ClownG</author><pubDate>Fri, 28 Aug 2020 16:52:39 +0800</pubDate><description><![CDATA[Uwsgi部署flask&amp;Django项目

我的部署环境是在ubuntu中,直接安装了Anaconda3,我自己使用的是flask

1.下载并配置Anaconda
可以参照我之前的配置mac下的anaconda,这是配置Anaconda链接
2.创建一个属于你的服务的虚拟环境

创建并激活新的虚拟环境

conda create -n 环境名称 python=3    在python3下创建一个新的虚拟环境
conda activate 环境名称


在进入新的环境之后,根据需要安装所需要的依赖]]></description><category></category></item><item><title><![CDATA[Mac终端工具iTerm2的多个ssh链接保存设置（类似Xshell的使用方法）]]></title><link>https://blog.youkuaiyun.com/ClownG/article/details/107849908</link><guid>https://blog.youkuaiyun.com/ClownG/article/details/107849908</guid><author>ClownG</author><pubDate>Thu, 06 Aug 2020 21:33:57 +0800</pubDate><description><![CDATA[Mac终端工具iTerm2
1.下载iTerm2
官方网站下载

2.下载完成安装之后，打开iTerm2,打开偏好设置，点击左下角的加号新建一个profile

3.点击下入窗口选择command

4.然后再出现的command框中输入你的命令，也就是你要ssh连接的命令

需要输入的命令如下：
在这里插入代码片
命令为： ssh root@xxxxxxxxxx -p 22
这里的root可以替换为你自己的用户名，后面的xxxx为你的主机地址，-p后面则跟随的是你想要链接的指定端口号

5.输入完命令以后]]></description><category></category></item><item><title><![CDATA[Mac中的Anaconda下载安装，配置环境变量以及简单使用]]></title><link>https://blog.youkuaiyun.com/ClownG/article/details/107684620</link><guid>https://blog.youkuaiyun.com/ClownG/article/details/107684620</guid><author>ClownG</author><pubDate>Thu, 30 Jul 2020 11:08:25 +0800</pubDate><description><![CDATA[Mac中的Anaconda下载安装，配置环境变量以及简单使用
1.下载以及安装
在官网去下载最新的anaconda安装包

然后切换到你下载保存的目录Downloads中执行以下命令，然后一直回车就可以了；
# bash 您下载的文件名
bash Anaconda3-5.3.0-MacOSX-x86_64.sh

2.取消打开终端直接进入base环境，如下图

执行以下命令即可
conda config --set auto_activate_base flase

3.配置环境变量

Mac 系统的环境变]]></description><category></category></item><item><title><![CDATA[Odoo的配置文件odoo.conf文件里的参数介绍]]></title><link>https://blog.youkuaiyun.com/ClownG/article/details/107253431</link><guid>https://blog.youkuaiyun.com/ClownG/article/details/107253431</guid><author>ClownG</author><pubDate>Fri, 10 Jul 2020 16:28:53 +0800</pubDate><description><![CDATA[Odoo的配置文件odoo.conf文件里的参数介绍
Odoo配置文件信息
[options]
; addons模块的查找路径
addons_path = E:\GreenOdoo8.0\source\openerp\addons
; 管理员主控密码(用于创建、还原和备份数据库等操作)
admin_passwd = admin
; 自动重载?
auto_reload = None
; 用于导入导出的csv文件的默认分隔符
csv_internal_sep = ,
; data目录, 用于存放session信]]></description><category></category></item><item><title><![CDATA[Odoo 13.0 开发环境搭建记录]]></title><link>https://blog.youkuaiyun.com/ClownG/article/details/107232864</link><guid>https://blog.youkuaiyun.com/ClownG/article/details/107232864</guid><author>ClownG</author><pubDate>Thu, 09 Jul 2020 16:58:27 +0800</pubDate><description><![CDATA[Odoo开发环境的搭建

一、前言

我自己的开发模式是使用windows10环境下的开发，postgresql数据库跑在远程服务端；使用的是Odoo-13.0社区版；语言版本是python3；

二、搭建准备


去官网的nightly nightly官方下载地址



如果是需要下载windows安装版，则进入windows目录下，如果是开发者则进入src目录下选择合适的版本进行下载



安装python环境python官方下载地址


安装IDE
关于IDE方面 JetBrains PyCharm ]]></description><category></category></item><item><title><![CDATA[Error:2006, ‘MySQL server has gone away‘问题排查记录]]></title><link>https://blog.youkuaiyun.com/ClownG/article/details/107088403</link><guid>https://blog.youkuaiyun.com/ClownG/article/details/107088403</guid><author>ClownG</author><pubDate>Thu, 02 Jul 2020 17:10:44 +0800</pubDate><description><![CDATA[Error:2006, 'MySQL server has gone away’问题排查记录

使用django进行后端处理，Mysql作为数据存储

今天在排查业务订单的时候发现了一个问题，当业务判断正确但是并未及时更新到前端，所以开始聪各方面入手对订单进行排查，最后发现是因为当业务进行到最后一步时存储发生了错误，此处为日志记录bug截图：

问题原因：由于mysql自身有timeout参数，超过28800秒无查询连接则进入类似休眠状态，需要查询请求来进行唤醒；
mysql&gt; show global]]></description><category></category></item><item><title><![CDATA[TCP/UDP socket基础编写]]></title><link>https://blog.youkuaiyun.com/ClownG/article/details/105467265</link><guid>https://blog.youkuaiyun.com/ClownG/article/details/105467265</guid><author>ClownG</author><pubDate>Sun, 12 Apr 2020 12:24:54 +0800</pubDate><description><![CDATA[SOCKET简介
socket(简称 套接字) 是进程间通信的一种方式，它与其他进程间通信的一个主要不同是：

它能实现不同主机间的进程间通信，我们网络上各种各样的服务大多都是基于 Socket 来完成通信的

例如我们每天浏览网页、QQ 聊天、收发 email 等等

UDP
相比较来说UDP面向的是无连接，udp的优点在于可以不用理会是否对面接受链接，直接发送内容，但是不确保发送内容的安全性以...]]></description><category></category></item><item><title><![CDATA[python中的常使用模块]]></title><link>https://blog.youkuaiyun.com/ClownG/article/details/105288633</link><guid>https://blog.youkuaiyun.com/ClownG/article/details/105288633</guid><author>ClownG</author><pubDate>Fri, 03 Apr 2020 12:19:35 +0800</pubDate><description><![CDATA[OS模块
os模块提供了多数操作系统的功能接口函数。当os模块被导入后，它会自适应于不同的操作系统平台，根据不同的平台进行相应的操作。
1. os.name——name顾名思义就是'名字'，这里的名字是指操作系统的名字，主要作用是判断目前正在使用的平台，并给出操作系统的名字，如Windows 返回 'nt'; Linux 返回'posix'。注意该命令不带括号。

2. os.getcwd()——...]]></description><category></category></item></channel></rss>