task
This commit is contained in:
97
README.md
97
README.md
@@ -31,6 +31,8 @@ GET /api/images
|
|||||||
id: 1234, // 原图ID
|
id: 1234, // 原图ID
|
||||||
width: 512, // 原图宽度
|
width: 512, // 原图宽度
|
||||||
height: 512, // 原图高度
|
height: 512, // 原图高度
|
||||||
|
createdAt: '', // 創建時間
|
||||||
|
updatedAt: '', // 更新時間
|
||||||
user: { // 来源用户
|
user: { // 来源用户
|
||||||
id: 1234,
|
id: 1234,
|
||||||
user_name: 'LAST',
|
user_name: 'LAST',
|
||||||
@@ -80,3 +82,98 @@ GET | /api/images?sort=choice | 根据精选集推荐(指定精选集I
|
|||||||
|
|
||||||
* 注意, 筛选规则为多条件取交集, 单条件的复数取并集
|
* 注意, 筛选规则为多条件取交集, 单条件的复数取并集
|
||||||
* 权重强化属于排序规则而非过滤规则
|
* 权重强化属于排序规则而非过滤规则
|
||||||
|
|
||||||
|
|
||||||
|
### 獲取模型列表
|
||||||
|
|
||||||
|
GET /api/models
|
||||||
|
```javascript
|
||||||
|
{
|
||||||
|
page: 1, // 当前页码
|
||||||
|
pageSize: 20, // 分页数
|
||||||
|
next: true, // 是否存在下一页
|
||||||
|
list: [{
|
||||||
|
id: 'xxxxx', // 模型ID
|
||||||
|
name: 'xxx', // 模型名稱
|
||||||
|
createdAt: '', // 創建時間
|
||||||
|
updatedAt: '', // 更新時間
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
篩選規則:(數據過濾)
|
||||||
|
-----------------------------------------------------------
|
||||||
|
Method | URL | Info
|
||||||
|
-------|--------------------------------|------------------
|
||||||
|
GET | /api/models?user=1234 | 按用戶ID篩選
|
||||||
|
GET | /api/models?tag=xxx | 按標籤分類篩選
|
||||||
|
|
||||||
|
|
||||||
|
### 獲取標籤
|
||||||
|
|
||||||
|
GET /api/tags
|
||||||
|
```javascript
|
||||||
|
{
|
||||||
|
page: 1, // 当前页码
|
||||||
|
pageSize: 20, // 分页数
|
||||||
|
next: true, // 是否存在下一页
|
||||||
|
list: [{
|
||||||
|
id: 'xxxxx', // 標籤ID
|
||||||
|
name: 'xxx', // 標籤名稱
|
||||||
|
createdAt: '', // 創建時間
|
||||||
|
updatedAt: '', // 更新時間
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
篩選規則:(數據過濾)
|
||||||
|
-----------------------------------------------------------
|
||||||
|
Method | URL | Info
|
||||||
|
-------|--------------------------------|------------------
|
||||||
|
GET | /api/tags?user=1234 | 按用戶ID篩選
|
||||||
|
GET | /api/tags?tag=xxx | 按標籤分類篩選
|
||||||
|
|
||||||
|
|
||||||
|
### 獲取任務
|
||||||
|
GET /api/tasks
|
||||||
|
```javascript
|
||||||
|
{
|
||||||
|
page: 1, // 当前页码
|
||||||
|
pageSize: 20, // 分页数
|
||||||
|
next: true, // 是否存在下一页
|
||||||
|
list: [{
|
||||||
|
id: 'xxxxx', // 任務ID
|
||||||
|
name: 'xxx', // 任務名稱
|
||||||
|
data: {}, // 任務數據
|
||||||
|
createdAt: '', // 創建時間
|
||||||
|
updatedAt: '', // 更新時間
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
篩選規則:(數據過濾)
|
||||||
|
-----------------------------------------------------------
|
||||||
|
Method | URL | Info
|
||||||
|
-------|--------------------------------|------------------
|
||||||
|
GET | /api/tasks?user=1234 | 按用戶ID篩選
|
||||||
|
GET | /api/tasks?tag=xxx | 按標籤分類篩選
|
||||||
|
|
||||||
|
|
||||||
|
### 監聽任務
|
||||||
|
|
||||||
|
WebSocket /api/tasks/{task_id}
|
||||||
|
```javascript
|
||||||
|
{
|
||||||
|
id: 'xxxx', // 任務ID
|
||||||
|
// 任務狀態
|
||||||
|
// 任務進度
|
||||||
|
// 返回數據
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
* 使用websocket建立連接以對指定任務監聽狀態變化
|
||||||
|
* 離開頁面時,或是任務結束時, 應斷開websocket連接
|
||||||
|
* 當任務狀態發生變化時, 服務端向瀏覽器主動發送消息
|
||||||
|
* 返回數據:任務執行中爲預覽, 任務完成時爲生成結果
|
||||||
|
|
||||||
|
|
||||||
|
21
main.go
21
main.go
@@ -13,25 +13,24 @@ import (
|
|||||||
func main() {
|
func main() {
|
||||||
runtime.GOMAXPROCS(runtime.NumCPU())
|
runtime.GOMAXPROCS(runtime.NumCPU())
|
||||||
|
|
||||||
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc("/api", func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
||||||
|
wecome := "Welcome to the home page!"
|
||||||
|
w.Write([]byte(wecome))
|
||||||
|
})
|
||||||
|
http.HandleFunc("/api/images", func(w http.ResponseWriter, r *http.Request) {
|
||||||
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
||||||
var listview models.ListView
|
var listview models.ListView
|
||||||
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||||
w.Write(listview.ToJson())
|
w.Write(listview.ToJson())
|
||||||
})
|
})
|
||||||
http.HandleFunc("/images", func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc("/api/models", func(w http.ResponseWriter, r *http.Request) {
|
||||||
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
||||||
var listview models.ListView
|
var listview models.ListView
|
||||||
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||||
w.Write(listview.ToJson())
|
w.Write(listview.ToJson())
|
||||||
})
|
})
|
||||||
http.HandleFunc("/models", func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc("/api/tasks", func(w http.ResponseWriter, r *http.Request) {
|
||||||
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
|
||||||
var listview models.ListView
|
|
||||||
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
|
||||||
w.Write(listview.ToJson())
|
|
||||||
})
|
|
||||||
http.HandleFunc("/tasks", func(w http.ResponseWriter, r *http.Request) {
|
|
||||||
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
||||||
|
|
||||||
// 查詢一組任務
|
// 查詢一組任務
|
||||||
@@ -51,13 +50,13 @@ func main() {
|
|||||||
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||||
w.Write(listview.ToJson())
|
w.Write(listview.ToJson())
|
||||||
})
|
})
|
||||||
http.HandleFunc("/users", func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc("/api/users", func(w http.ResponseWriter, r *http.Request) {
|
||||||
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
||||||
var listview models.ListView
|
var listview models.ListView
|
||||||
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||||
w.Write(listview.ToJson())
|
w.Write(listview.ToJson())
|
||||||
})
|
})
|
||||||
http.HandleFunc("/tags", func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc("/api/tags", func(w http.ResponseWriter, r *http.Request) {
|
||||||
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
||||||
var listview models.ListView
|
var listview models.ListView
|
||||||
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||||
|
22
update.sh
Executable file
22
update.sh
Executable file
@@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 靜態編譯
|
||||||
|
go mod tidy
|
||||||
|
go build -o data/gameui-ai-server main.go
|
||||||
|
|
||||||
|
# 上传文件
|
||||||
|
scp ./data/gameui-ai-server root@47.103.40.152:~/gameui-ai-server_new
|
||||||
|
|
||||||
|
# 重啓服務
|
||||||
|
ssh root@47.103.40.152 '''
|
||||||
|
ps -ef | grep -v grep | grep ./gameui-ai-server;
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "kill gameui-ai-server"
|
||||||
|
killall ./gameui-ai-server
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf ./gameui-ai-server;
|
||||||
|
mv ./gameui-ai-server_new ./gameui-ai-server;
|
||||||
|
nohup ./gameui-ai-server >> nohup-ai.out 2>&1 &
|
||||||
|
echo "start gameui-ai-server:8080 ok"
|
||||||
|
'''
|
Reference in New Issue
Block a user