博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
golang redis 队列删除图片
阅读量:6591 次
发布时间:2019-06-24

本文共 1945 字,大约阅读时间需要 6 分钟。

hot3.png

   之前几篇完成了缩图功能,今天在常帅的指导下,完成了golang操作队列删除图片功能,之前打算用lua-resty-redis弄,尼玛,不懂怎么触发,SB了。然后常帅说用Golang,好吧.就有了下面的代码。

package mainimport (	"fmt"	"time"	"gopkg.in/redis.v5"	"strings"	"os"	"path/filepath")var client *redis.Clientfunc main() {	fmt.Println("Hello, 世界")	client = redis.NewClient(&redis.Options{		Addr:         "ip:6379",		DialTimeout:  10 * time.Second,		ReadTimeout:  30 * time.Second,		WriteTimeout: 30 * time.Second,		PoolSize:     10,		PoolTimeout:  30 * time.Second,	})	pong, err := client.Ping().Result()	fmt.Println(pong,err)	if err != nil {		panic(err)	}	for{		result, err := client.BLPop(0, "sync_img").Result()		if err != nil {			fmt.Println("error:  %s",err)			continue		}		img_path := result[1]		if len(img_path) < 1 {			fmt.Println(" path is   null")			continue		}		if(strings.Contains(img_path,"..")){			fmt.Println(" path can't contains ..")			continue		}		// (gif|jpg|png|jpeg		if(strings.HasSuffix(img_path, ".gif")  || strings.HasSuffix(img_path, ".jpg")  || strings.HasSuffix(img_path, ".png")  || strings.HasSuffix(img_path, ".jpeg")  ){			full_path                 := "/tmp"+img_path			files, err		  := filepath.Glob(full_path+"*")			if err != nil{				fmt.Println(err)				continue			}			for _, f := range files{				fmt.Println("rm path :%s",f)				removeErr :=os.Remove(f)				if removeErr != nil {				        fmt.Printf("file remove Error! %s", removeErr)				} else {				        //如果删除成功则输出 file remove OK!				        fmt.Print("file remove OK!")				 }			}					}else{			fmt.Println(" only receive : gif | jpg |png |jpeg  ")		}	}}

上面的代码东拼西凑的,对了,需要先用Go安装: go get gopkg.in/redis.v5

然后在控制台执行运行命令: go run xxx.go  

然后常帅说在服务器上使用root运行权限太大了,一不小心把删掉别的数据怎么办,然后找到使用nobody运行命令,修改如下

vim /etc/passwd	找到	nobody:x:99:99:Nobody:/:/sbin/nologin	改为nobody:x:99:99:Nobody:/:/bin/bash	后保存执行su -nobody

  接着就可以执行: su -m nobody -c "go run redis_queue.go &"  

  资源: https://github.com/go-redis/redis 打完收工

  来源我的博客:

转载于:https://my.oschina.net/273579540/blog/853006

你可能感兴趣的文章
POJ1068 Parencodings 解题报告
查看>>
字符串连接[不用库函数]
查看>>
使用Hystrix实现自动降级与依赖隔离-微服务
查看>>
Parcelbale接口
查看>>
新建一个express工程,node app无反应
查看>>
Python去掉字符串中空格的方法
查看>>
[转] 用GDB调试程序(五)
查看>>
OCM_第十一天课程:Section5 —》数据仓库
查看>>
来自一个用户的体验-Alpha项目测试
查看>>
水晶报表
查看>>
[转载]测试程序执行时间
查看>>
[转载]回调函数
查看>>
kettle-多文件合并
查看>>
GitHub for Windows一般操作
查看>>
MyEclipse6.5的反编译插件的安装
查看>>
Jenkins + Ansible + Gitlab之ansible篇
查看>>
cogs 539. 牛棚的灯
查看>>
SQL SERVER 备份数据库到指定路径语句
查看>>
3.Knockout.Js(属性绑定)
查看>>
C++三大特性之多态
查看>>