上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 54 下一页
摘要: 这个要解决的问题是,比如如果有一个大循环,取自一个大的文件,要进行逻辑处理,那么这个逻辑的代码要放在循环每一行的循环体里面,这样有可能会出现一个for循环的逻辑嵌套,一层又一层,类似俄罗斯套娃.如果放在外面那么就需要把大循环的每一行数据存到一个数组或者切片里面,这样会占很大的内存 那么就可以使用这种 阅读全文
posted @ 2019-11-22 20:38 唯一客服系统开发笔记 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 需求是统计某个业务的访问个数日志服务器上的目录结构是如下,搜索最近7天的指定关键字数据,并排重统计个数: for循环的一行表示形式for ((i=15;i<=21;i++));do xxx;donewhile循环的一行表示 while true;do xxx;done获取当前年月`date +%Y- 阅读全文
posted @ 2019-11-22 19:53 唯一客服系统开发笔记 阅读(2949) 评论(0) 推荐(0) 编辑
摘要: 连接上imap服务后,什么都不操作,我测试大约5分钟会被服务端断掉,测试代码如下 为了保持住这条连接,每隔10秒列取一下邮件夹列表,这样就可以一直保持住连接了。开三个窗口,一个窗口不停的netstat查看tcp连接情况,一个窗口运行代码,一个窗口打开tcpdump监听端口查看数据请求 while t 阅读全文
posted @ 2019-11-21 23:55 唯一客服系统开发笔记 阅读(690) 评论(0) 推荐(0) 编辑
摘要: OpenFile得到一个File,然后调用它的Write,参数是字节切片Stat看看返回错误没有 阅读全文
posted @ 2019-11-21 23:15 唯一客服系统开发笔记 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 执行下面这俩命令,找到对应的IP,增加host就能解决 nslookup github.global.ssl.fastly.Netnslookup github.com root@tao-PC:/var/www/html/go-project/test# nslookup github.global 阅读全文
posted @ 2019-11-21 21:45 唯一客服系统开发笔记 阅读(823) 评论(0) 推荐(0) 编辑
摘要: 待修正 阅读全文
posted @ 2019-11-21 20:27 唯一客服系统开发笔记 阅读(566) 评论(0) 推荐(0) 编辑
摘要: 原理是把服务器的端口转发到本机的端口上,比如把服务器的9001端口转发给本机的80端口,服务器使用nginx反向代理到9001端口绑定域名就可以正常访问本地电脑中的网站了 secureCRT端口转发的配置 nginx反向代理的配置 本机就是正常安装和下载lnmp的集成环境就可以 阅读全文
posted @ 2019-11-21 17:47 唯一客服系统开发笔记 阅读(3280) 评论(0) 推荐(0) 编辑
摘要: 解决nginx: [emerg] directive "rewrite" is not terminated by ";"nginx的rewite规则有时候没注意会报这个错误,原因是规则中存在{}会被认为是规则结尾报错,使用""双引号把规则包起来可以避免这个错误还有就是nginx中的规则中/斜杠不必 阅读全文
posted @ 2019-11-21 17:23 唯一客服系统开发笔记 阅读(4295) 评论(0) 推荐(1) 编辑
摘要: 当程序中使用root账号连接mysql时报以下错误,但是使用命令行是可以正常连接的,那么就查询下mysql数据库的user表,查看下当前用户的密码加密方式,看看是不是unix_socketMariaDB [mysql]> select user,plugin from user;+ + +| use 阅读全文
posted @ 2019-11-20 23:21 唯一客服系统开发笔记 阅读(1278) 评论(0) 推荐(1) 编辑
摘要: 判断是linux系统,并且uid为0,allowRoot是通过命令行传参传进来的,通过flag包解析出来的,可以使用go run node.go -h看到这些参数 log.Fatal传入的是一个可变参数v ...interface{},并且可以传入任意类型,可变参数的使用和切片很像 如果要真的传入一 阅读全文
posted @ 2019-11-20 22:14 唯一客服系统开发笔记 阅读(923) 评论(0) 推荐(0) 编辑
摘要: 利用nginx的rewrite的指令,可以实现url的重新跳转,rewrtie有四种不同的flag,分别是redirect(临时重定向)、permanent(永久重定向)、break和last。其中前两种是跳转型的flag,后两种是代理型,跳转型是指有客户端浏览器重新对新地址进行请求,代理型是在WE 阅读全文
posted @ 2019-11-20 20:20 唯一客服系统开发笔记 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 需要go升级到1.12或以上 创建一个server.go 生成go.mod文件 阅读全文
posted @ 2019-11-18 19:57 唯一客服系统开发笔记 阅读(4102) 评论(0) 推荐(1) 编辑
摘要: go中实现一个tcp服务,首先是要监听端口,接收请求,这个地方会被阻塞等待当客户端连接过来,会开一个grountine去处理这条客户端的tcp连接,因此可以同时处理多条连接 在连接中,要循环的去读取客户端传递过来的数据,这样就可以不停的处理客户端的请求数据在读取数据的时候,每次我只读一个字节,这样方 阅读全文
posted @ 2019-11-17 23:55 唯一客服系统开发笔记 阅读(1115) 评论(0) 推荐(0) 编辑
摘要: gocron源码中使用的是马卡龙框架,下面这个就是安装这个框架,和一般的MVC框架很像go get gopkg.in/macaron.v1git clone https://github.com/golang/crypto.git $GOPATH/src/golang.org/x/crypto 监听 阅读全文
posted @ 2019-11-16 17:55 唯一客服系统开发笔记 阅读(721) 评论(0) 推荐(0) 编辑
摘要: gocron源码中使用的是下面这个第三方包来实现的,下面就单独的拿出来测试以下效果,和官方flag包差不多 go get github.com/urfave/cli 阅读全文
posted @ 2019-11-16 16:32 唯一客服系统开发笔记 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 调用flag包可以方便的获取到命令行中传递的参数,比如可以实现类似nginx执行程序获取命令行参数执行不同操作的目标 阅读全文
posted @ 2019-11-16 15:35 唯一客服系统开发笔记 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 直接使用go 函数名()可以开启一个grountine,channel可以接收信息并且如果没有数据时会阻塞住channel对应的是底层数据结构的引用,复制channel和函数传参都是拷贝的引用make的时候第二个参数是1,就表示是有缓存的channel 无缓存的channel也叫同步channel 阅读全文
posted @ 2019-11-16 12:31 唯一客服系统开发笔记 阅读(306) 评论(0) 推荐(0) 编辑
摘要: gocron源代码中的Action那个地方,就是个空接口类型Action interface{},可以传递任意类型进去,这里是传了个函数进去 接口是合约,任何类型只要实现了接口中的方法,那么就可以认为实现了这个接口。对于没有方法的接口interface{}类型,可以看做所有的类型都实现了这个接口,因 阅读全文
posted @ 2019-11-15 23:27 唯一客服系统开发笔记 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 源码中有这么一句,这个函数要求返回的是[]cli.Command,cli.Command类型的切片,这个地方直接使用字面值初始化了一个切片返回去了 数组的字面值初始化,一般是需要指定数组的大小,可以使用...三个点来代替大小,根据后面初始化的个数来计算,下面就是字面值初始化一个数组 切片和数组很类似 阅读全文
posted @ 2019-11-15 22:33 唯一客服系统开发笔记 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 这个数据库类主要处理了单例模式下创建数据库对象时,如果有两次较长时间的间隔去执行sql操作,再次处理会出现连接失败的问题,利用一个cache数组存放pdo对象与时间戳,把两次执行之间的时间进行了比较,如果间隔超过了10秒就再次new PDO创建连接,没有超过的情况下会继续使用原来的连接,并且因为每次 阅读全文
posted @ 2019-11-15 20:04 唯一客服系统开发笔记 阅读(847) 评论(0) 推荐(0) 编辑
摘要: 上面那些代码非常不容易理解,我们需要把它拆分来看当我们直接实例化一个类的时候,如果大括号竖着排,那么里面的成员赋值后要加个逗号 定义一个接口,接口里面有一个成员方法 定义另一个类型,这个类型刚好就有这个方法,那么就可以认为这个类型实现了接口 这个时候如果定义Flag类型的变量,那么StringFla 阅读全文
posted @ 2019-11-14 23:28 唯一客服系统开发笔记 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 在gocron.go文件的main函数中,有下面这一句,从这句代码中可以学习到切片和类型的综合运用 首先在go语言中定义一个类型需要使用type 名字 struct{},还可以给这个类型定义成员方法 这里我就定义了Taoshihan类型,为他增加了Say方法 实例化这个类型需要 名字{},下面这个就 阅读全文
posted @ 2019-11-14 22:51 唯一客服系统开发笔记 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 结构体类型 type 名字 struct{},下面这段是github.com/urfave/cli包里的代码,声明了一个App的结构体类型 点操作符也可以和指向结构体的指针一起工作,如果赋给的是个指针,那也可以直接用点来操作 type User struct{ Name string } user: 阅读全文
posted @ 2019-11-14 19:21 唯一客服系统开发笔记 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 首先要先把环境变量配置好,配置好环境变量打开go文件的时候,会自动提示需要安装的扩展在/root/.profile和/home/当前用户/.profile都加上 export GOPATH=/var/www/html/go-project/libexport GOROOT=/usr/local/go 阅读全文
posted @ 2019-11-13 23:23 唯一客服系统开发笔记 阅读(2121) 评论(0) 推荐(0) 编辑
摘要: 从 Go1.11 开始,golang 官方支持了新的依赖管理工具go modgo mod download: 下载依赖的 module 到本地 cachego mod edit: 编辑 go.modgo mod graph: 打印模块依赖图go mod init: 在当前目录下初始化 go.mod( 阅读全文
posted @ 2019-11-13 21:29 唯一客服系统开发笔记 阅读(870) 评论(0) 推荐(0) 编辑
摘要: 变量的声明形式是这样的 var 变量名字 类型 = 表达式var ( AppVersion = "1.5" BuildDate, GitCommit string)类型可以被省略,这时候会通过表达式推导变量的类型,AppVersion 应该是string类型表达式可以被省略,这时候会根据零值初始化机 阅读全文
posted @ 2019-11-13 18:21 唯一客服系统开发笔记 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 采用二进制文件的方式部署非常简单,因为go已经把源码打包成了可执行文件,下载下来直接运行就可以了,不需要自己去编译和配置依赖 下载执行文件的地址是:https://github.com/ouqiang/gocron/releases看清楚自己的系统,需要下载gocron和gocron-node两个包 阅读全文
posted @ 2019-11-12 23:15 唯一客服系统开发笔记 阅读(3503) 评论(0) 推荐(0) 编辑
摘要: composer的版本太低了,需要更新composerwindows的安装使用https://getcomposer.org/Composer-Setup.exe报这个错Failed to decode zlib stream,把下面的composer.phar移动到php.exe所在目录,重试就好 阅读全文
posted @ 2019-11-12 19:09 唯一客服系统开发笔记 阅读(2715) 评论(0) 推荐(0) 编辑
摘要: 还没有push到远程的时候,版本回退的测试如下 先克隆一个空的测试仓库,这是我自己在gitlab里创建的空仓库git clone http://192.168.1.114:8090/admintsh/blog.git 提交三次代码git add .git commit -m "xxx"使用git l 阅读全文
posted @ 2019-11-10 23:07 唯一客服系统开发笔记 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 在gitlab里创建用户 默认密码是要求创建的用户自己去邮箱重置,也可以创建完成后直接点击编辑,就可以更改密码了 创建完用户,用户登录的时候需要去重置密码 创建完项目,就可以去使用了 也可以为这个项目增加其他成员一起开发 可以更改这个成员的权限 阅读全文
posted @ 2019-11-10 21:39 唯一客服系统开发笔记 阅读(6509) 评论(0) 推荐(0) 编辑
摘要: mysql8的默认密码加密方式是caching_sha2_password,PHP7.4连接mysql的加密方式也为caching_sha2_password,这个地方要注意。 当为了兼容旧版的客户端不只是PHP,还有在主从复制的时候也会有问题,mysql8的认证方式改回了mysql_native_ 阅读全文
posted @ 2019-11-09 17:55 唯一客服系统开发笔记 阅读(2554) 评论(0) 推荐(0) 编辑
摘要: 按照以前的印象,error_reporting(0)屏蔽不了php的Fatal error级别的错误。但是今天我遇到了一个问题才发现,它竟然可以屏蔽任何错误,包括Fatal error,浏览器会看不到500错误码,显示的是200,php-fpm下的php错误日志里没有任何输出,nginx下的错误日志 阅读全文
posted @ 2019-11-09 12:37 唯一客服系统开发笔记 阅读(703) 评论(0) 推荐(0) 编辑
摘要: 因为我要用它来管理多个PHP进程去执行任务,在默认版本下的配置多个子进程不起作用 默认版本的supervisor版本比较低2.1.9,对于运行多个子进程貌似有问题,最新版的supervisor4.1的又因为需要高版本的python才行,所以才有了下面的解决办法 先安装pipyum install p 阅读全文
posted @ 2019-11-08 19:13 唯一客服系统开发笔记 阅读(813) 评论(0) 推荐(0) 编辑
摘要: 宝塔官方建议是纯净的系统,我使用docker运行一个ubuntu容器,模拟一个纯净的系统,这样也不会影响到我的其他服务。 docker run --name baota -id -p 8888:8888 ubuntu docker exec -it baota bashapt-get updatea 阅读全文
posted @ 2019-11-07 23:23 唯一客服系统开发笔记 阅读(5726) 评论(0) 推荐(0) 编辑
摘要: 在php中每一个new的PDO对象,都会去连接mysql,都会创建一条tcp连接.当pdo对象赋予的变量是一个的时候,那么他只会保持一个tcp连接,没有被引用的对象连接会直接断掉.如果不对这个对象进行任何操作,不传输任何数据,这条连接会在10秒后被mysql服务断掉. 如果使用了长连接参数,那么不管 阅读全文
posted @ 2019-11-07 18:54 唯一客服系统开发笔记 阅读(1201) 评论(0) 推荐(0) 编辑
摘要: 服务端上查看tcp连接的建立情况,直接使用netstat命令来统计,看到了很多的time_wait状态的连接.这些状态是tcp连接中主动关闭的一方会出现的状态.该服务器是nginx的webserver监听80端口,搭配的php-fpm监听9000端口,连接其他服务器数据库3960端口,连接其他服务器 阅读全文
posted @ 2019-11-05 19:44 唯一客服系统开发笔记 阅读(965) 评论(0) 推荐(0) 编辑
摘要: 先安装一下这个命令 add-apt-repositoryapt-get install software-properties-common 添加第三方源:add-apt-repository ppa:ondrej/phpapt-get update 安装php:apt-get install ph 阅读全文
posted @ 2019-11-04 23:00 唯一客服系统开发笔记 阅读(10788) 评论(0) 推荐(0) 编辑
摘要: 在公司里面有分配的测试机,所有的开发代码都运行在测试机里面.因为公司的测试机机房退租,所以要在新申请的几台测试机上搭建开发环境.开发环境尽量做到和线上的环境一致,包括代码的目录路径,运行程序的进程用户,日志的目录等等.我的测试机的linux版本还是centos6.5,搭建lnmp环境主要是下面这些命 阅读全文
posted @ 2019-11-04 19:30 唯一客服系统开发笔记 阅读(1106) 评论(0) 推荐(0) 编辑
摘要: 上周遇到的神奇引导问题竟然被鬼使神差的修复好了。因为我的电脑是64位的也就是x86_64架构,并且是UEFI模式下,但是之前装的grub一直是grub-传统,并且一直是i386-pc平台也就是32位的,所以才一直修不好。今天我重新安装了以下grub,运行的下面的命令安装grub-efi,并且重新执行 阅读全文
posted @ 2019-11-02 22:49 唯一客服系统开发笔记 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 拉取mysql的镜像docker search mysqldocker pull mysql 通过镜像创建容器,这里先创建第一个容器作为master mysql-v /etc/mysql:/etc/mysql/conf.d 表示目录共享,目录提前创建好,第二个容器要目录不一样 docker run 阅读全文
posted @ 2019-11-02 19:29 唯一客服系统开发笔记 阅读(430) 评论(0) 推荐(0) 编辑
上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 54 下一页