ai gen
This commit is contained in:
12
scripts/build.sh
Normal file
12
scripts/build.sh
Normal file
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
GOARCH=amd64 GOOS=linux go build -o ../builds/gostock ./cmd/main/main.go
|
||||
|
||||
BSM_RuntimeMode=prod BSM_Prefix=/data/app/ nohup ./gostock > /data/app/logs/gostock.log 2>&1 &
|
||||
cat /data/app/logs/gostock.log
|
||||
|
||||
|
||||
GOARCH=amd64 GOOS=linux go build -o ../builds/selector ./cmd/selector/main.go
|
||||
|
||||
GOARCH=amd64 GOOS=linux go build -o ../builds/test ./cmd/test/main.go
|
||||
BSM_RuntimeMode=prod BSM_Prefix=/data/app/ ./selector
|
||||
50
scripts/deploy.sh
Normal file
50
scripts/deploy.sh
Normal file
@@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 配置部分
|
||||
BINARY_NAME="gostock" # 二进制文件名
|
||||
BUILD_OUTPUT_DIR="../builds/gostock" # 构建输出目录
|
||||
|
||||
# 服务器配置
|
||||
REMOTE_USER="root" # 服务器用户名
|
||||
REMOTE_HOST="139.224.247.176" # 服务器地址
|
||||
REMOTE_DIR="/data/app" # 服务器部署目录
|
||||
SERVICE_NAME="gostock" # 服务名称(如果有systemd服务)
|
||||
|
||||
echo "=== 开始部署流程 ==="
|
||||
|
||||
# 1. 编译Linux二进制文件
|
||||
echo "正在编译Linux二进制文件..."
|
||||
|
||||
# 使用Go语言编译示例 (如果是其他语言请修改此部分)
|
||||
# 如果不是Go项目,请替换为你的构建命令,如make等
|
||||
GOEXPERIMENT=jsonv2 GOOS=linux GOARCH=amd64 go build -o "${BUILD_OUTPUT_DIR}/${BINARY_NAME}" ./cmd/${BINARY_NAME}/main.go
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "编译失败!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "编译成功: ${BUILD_OUTPUT_DIR}/${BINARY_NAME}"
|
||||
|
||||
# 2. 停止远程服务
|
||||
echo "正在停止远程服务..."
|
||||
ssh "${REMOTE_USER}@${REMOTE_HOST}" << EOF
|
||||
killall -9 "${BINARY_NAME}"
|
||||
EOF
|
||||
|
||||
# 3. 上传到服务器
|
||||
echo "正在上传文件到服务器..."
|
||||
scp -C "${BUILD_OUTPUT_DIR}/${BINARY_NAME}" "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/${BINARY_NAME}"
|
||||
scp ./etc/* "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/etc/"
|
||||
|
||||
|
||||
# 4. 设置执行权限并启动服务
|
||||
echo "正在设置权限并启动服务..."
|
||||
ssh "${REMOTE_USER}@${REMOTE_HOST}" << EOF
|
||||
chmod +x "${REMOTE_DIR}/${BINARY_NAME}"
|
||||
nohup "${REMOTE_DIR}/${BINARY_NAME}" > "${REMOTE_DIR}/logs/${BINARY_NAME}.log" 2>&1 &
|
||||
sleep 2
|
||||
pgrep -f "${REMOTE_DIR}/${BINARY_NAME}" && echo "服务启动成功!" || echo "服务启动可能失败!"
|
||||
EOF
|
||||
|
||||
echo "=== 部署完成 ==="
|
||||
105
scripts/schema.sql
Normal file
105
scripts/schema.sql
Normal file
@@ -0,0 +1,105 @@
|
||||
-- 资产快照表
|
||||
CREATE TABLE IF NOT EXISTS assets_snapshots (
|
||||
id SERIAL PRIMARY KEY,
|
||||
account_id VARCHAR(50) NOT NULL,
|
||||
cash DECIMAL(15, 2) NOT NULL DEFAULT 0,
|
||||
frozen_cash DECIMAL(15, 2) NOT NULL DEFAULT 0,
|
||||
market_value DECIMAL(15, 2) NOT NULL DEFAULT 0,
|
||||
profit DECIMAL(15, 2) NOT NULL DEFAULT 0,
|
||||
total_asset DECIMAL(15, 2) NOT NULL DEFAULT 0,
|
||||
data_hash VARCHAR(64) NOT NULL,
|
||||
collected_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX idx_assets_account_id ON assets_snapshots(account_id);
|
||||
CREATE INDEX idx_assets_collected_at ON assets_snapshots(collected_at);
|
||||
CREATE INDEX idx_assets_data_hash ON assets_snapshots(data_hash);
|
||||
|
||||
-- 订单表
|
||||
CREATE TABLE IF NOT EXISTS orders (
|
||||
id SERIAL PRIMARY KEY,
|
||||
order_id BIGINT NOT NULL,
|
||||
account_id VARCHAR(50) NOT NULL,
|
||||
stock_code VARCHAR(20) NOT NULL,
|
||||
price DECIMAL(10, 4) NOT NULL DEFAULT 0,
|
||||
volume INTEGER NOT NULL DEFAULT 0,
|
||||
traded_price DECIMAL(10, 4) NOT NULL DEFAULT 0,
|
||||
traded_volume INTEGER NOT NULL DEFAULT 0,
|
||||
order_status INTEGER NOT NULL DEFAULT 0,
|
||||
order_time BIGINT NOT NULL,
|
||||
order_remark TEXT,
|
||||
data_hash VARCHAR(64) NOT NULL,
|
||||
collected_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX idx_orders_order_id ON orders(order_id);
|
||||
CREATE INDEX idx_orders_stock_code ON orders(stock_code);
|
||||
CREATE INDEX idx_orders_account_id ON orders(account_id);
|
||||
CREATE INDEX idx_orders_collected_at ON orders(collected_at);
|
||||
|
||||
-- 持仓表
|
||||
CREATE TABLE IF NOT EXISTS positions (
|
||||
id SERIAL PRIMARY KEY,
|
||||
account_id VARCHAR(50) NOT NULL,
|
||||
code VARCHAR(20) NOT NULL,
|
||||
volume INTEGER NOT NULL DEFAULT 0,
|
||||
can_use_volume INTEGER NOT NULL DEFAULT 0,
|
||||
frozen_volume INTEGER NOT NULL DEFAULT 0,
|
||||
avg_price DECIMAL(10, 4) NOT NULL DEFAULT 0,
|
||||
open_price DECIMAL(10, 4) NOT NULL DEFAULT 0,
|
||||
current_price DECIMAL(10, 4) NOT NULL DEFAULT 0,
|
||||
market_value DECIMAL(15, 2) NOT NULL DEFAULT 0,
|
||||
profit DECIMAL(15, 2) NOT NULL DEFAULT 0,
|
||||
profit_rate DECIMAL(10, 4) NOT NULL DEFAULT 0,
|
||||
min_profit_rate DECIMAL(10, 4) NOT NULL DEFAULT 0,
|
||||
data_hash VARCHAR(64) NOT NULL,
|
||||
collected_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX idx_positions_code ON positions(code);
|
||||
CREATE INDEX idx_positions_account_id ON positions(account_id);
|
||||
CREATE INDEX idx_positions_collected_at ON positions(collected_at);
|
||||
|
||||
-- 行情数据表
|
||||
CREATE TABLE IF NOT EXISTS tick_data (
|
||||
id SERIAL PRIMARY KEY,
|
||||
stock_code VARCHAR(20) NOT NULL,
|
||||
last_price DECIMAL(10, 4) NOT NULL DEFAULT 0,
|
||||
open DECIMAL(10, 4) NOT NULL DEFAULT 0,
|
||||
high DECIMAL(10, 4) NOT NULL DEFAULT 0,
|
||||
low DECIMAL(10, 4) NOT NULL DEFAULT 0,
|
||||
last_close DECIMAL(10, 4) NOT NULL DEFAULT 0,
|
||||
volume BIGINT NOT NULL DEFAULT 0,
|
||||
amount DECIMAL(15, 2) NOT NULL DEFAULT 0,
|
||||
pvolume BIGINT NOT NULL DEFAULT 0,
|
||||
bid_prices DECIMAL(10, 4)[],
|
||||
bid_volumes INTEGER[],
|
||||
ask_prices DECIMAL(10, 4)[],
|
||||
ask_volumes INTEGER[],
|
||||
time BIGINT NOT NULL,
|
||||
timetag VARCHAR(50),
|
||||
stock_status INTEGER NOT NULL DEFAULT 0,
|
||||
data_hash VARCHAR(64) NOT NULL,
|
||||
collected_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX idx_tick_stock_code ON tick_data(stock_code);
|
||||
CREATE INDEX idx_tick_time ON tick_data(time);
|
||||
CREATE INDEX idx_tick_collected_at ON tick_data(collected_at);
|
||||
|
||||
-- 采集日志表
|
||||
CREATE TABLE IF NOT EXISTS collection_logs (
|
||||
id SERIAL PRIMARY KEY,
|
||||
data_hash VARCHAR(64) NOT NULL,
|
||||
has_changed BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
status_message TEXT,
|
||||
collected_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX idx_collection_logs_hash ON collection_logs(data_hash);
|
||||
CREATE INDEX idx_collection_logs_collected_at ON collection_logs(collected_at);
|
||||
7
scripts/update.sh
Normal file
7
scripts/update.sh
Normal file
@@ -0,0 +1,7 @@
|
||||
git pull
|
||||
go get all
|
||||
go get -u ./...
|
||||
go mod tidy
|
||||
git add .
|
||||
git commit -m 'run ./script/update.sh'
|
||||
git push
|
||||
Reference in New Issue
Block a user