方案一:(同步操作,代码侵入性比较高)
在往数据库中增加一条数据的同时,向es中也插入一条
Books.objects.create()
向es中插入一条数据
方案二:使用celery起一个定时任务
在用户低峰的时候,执行定时任务(比如每天晚上00:00),把当天新增的数据查询出来并处理成Json格式存到es中。
向es中插入一条
方案三:使用django信号
-Books.objects.create()
在插入后触发某个信号(post_save) # 具体看django内置信号总结
方案四:单独做一个服务做同步
go mysql elasticsearch是一项将mysql数据自动同步到elasticsearch的服务。它首先使用mysqldump获取源数据,然后用binlog增量同步数据。
Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序
# 1. Mac 下编译 Linux 和 Windows 64位可执行程序
CGO_ENABLED=0
GOOS=linux
GOARCH=amd64
go build main.go
CGO_ENABLED=0
GOOS=windows
GOARCH=amd64
go build main.go
//CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
# 2. Linux 下编译 Mac 和 Windows 64位可执行程序
CGO_ENABLE