Compare commits

..

No commits in common. "main" and "frontend-dev" have entirely different histories.

8 changed files with 15 additions and 42 deletions

View File

@ -1,17 +0,0 @@
FROM python:3.12
# 设置工作目录
WORKDIR /app
# 将当前目录内容复制到位于容器的/app目录下
COPY . /app
# 安装依赖
RUN pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
RUN pip install --no-cache-dir -r requirements.txt
# 暴露容器的端口
EXPOSE 8000
# 在容器启动时运行app.py
CMD ["python", "main.py"]

View File

@ -1,6 +1,6 @@
[server] [server]
listen = 0.0.0.0 listen = 0.0.0.0
port = 8000 port = 8080
debug = true debug = true
[database] [database]

View File

@ -1,4 +1,3 @@
Flask Flask == 3.1.0
pymysql pymysql == 1.1.1
confluent-kafka confluent-kafka == 2.7.0
kafka-python-ng

View File

@ -12,7 +12,7 @@ def readKafka():
messages = [] messages = []
try: try:
# 读取消息最多读取10条消息 # 读取消息最多读取10条消息
msg = consumer.poll(timeout_ms=1000, max_records=50) msg = consumer.poll(timeout_ms=500, max_records=50)
for partition, msgs in msg.items(): for partition, msgs in msg.items():
for message in msgs: for message in msgs:
messages.append(raw_Data_to_jsonstr(message.value.decode('utf-8'))) messages.append(raw_Data_to_jsonstr(message.value.decode('utf-8')))
@ -44,7 +44,7 @@ def orders_count_by_name():
messages = [] messages = []
try: try:
# 读取消息最多读取10条消息 # 读取消息最多读取10条消息
msg = consumer.poll(timeout_ms=1000, max_records=50) msg = consumer.poll(timeout_ms=500, max_records=50)
for partition, msgs in msg.items(): for partition, msgs in msg.items():
for message in msgs: for message in msgs:
jsondata = json.loads(message.value.decode('utf-8')) jsondata = json.loads(message.value.decode('utf-8'))
@ -66,7 +66,7 @@ def order_name_count():
messages = [] messages = []
try: try:
# 读取消息最多读取10条消息 # 读取消息最多读取10条消息
msg = consumer.poll(timeout_ms=1000, max_records=50) msg = consumer.poll(timeout_ms=500, max_records=50)
for partition, msgs in msg.items(): for partition, msgs in msg.items():
for message in msgs: for message in msgs:
jsondata = json.loads(message.value.decode('utf-8')) jsondata = json.loads(message.value.decode('utf-8'))
@ -88,7 +88,7 @@ def summary():
messages = [] messages = []
try: try:
# 读取消息最多读取10条消息 # 读取消息最多读取10条消息
msg = consumer.poll(timeout_ms=1000, max_records=50) msg = consumer.poll(timeout_ms=500, max_records=50)
for partition, msgs in msg.items(): for partition, msgs in msg.items():
for message in msgs: for message in msgs:
jsondata = json.loads(message.value.decode('utf-8')) jsondata = json.loads(message.value.decode('utf-8'))

View File

@ -80,7 +80,7 @@
} }
// 每5秒更新一次图表数据 // 每5秒更新一次图表数据
setInterval(fetchDataAndUpdateChart, 10000); setInterval(fetchDataAndUpdateChart, 5000);
// 初始数据加载 // 初始数据加载
fetchDataAndUpdateChart(); fetchDataAndUpdateChart();

View File

@ -54,7 +54,7 @@
// 获取数据并更新图表 // 获取数据并更新图表
function fetchDataAndUpdateChart() { function fetchDataAndUpdateChart() {
fetch('/api/stream/ordernamecount') fetch('/api/stream/ordernamecount') // 替换为你的实际API地址
.then(response => response.json()) .then(response => response.json())
.then(data => { .then(data => {
// 统计每个订单名称的数量 // 统计每个订单名称的数量
@ -82,7 +82,7 @@
} }
// 每5秒更新一次数据 // 每5秒更新一次数据
setInterval(fetchDataAndUpdateChart, 10000); setInterval(fetchDataAndUpdateChart, 5000);
// 初始数据加载 // 初始数据加载
fetchDataAndUpdateChart(); fetchDataAndUpdateChart();

View File

@ -35,11 +35,6 @@
data: chartData, data: chartData,
options: { options: {
responsive: true, responsive: true,
plugins: {
legend: {
display: true, // 显示图例
}
},
scales: { scales: {
x: { x: {
type: 'category', // X轴使用类别型 type: 'category', // X轴使用类别型
@ -59,11 +54,9 @@
// 获取数据并更新图表 // 获取数据并更新图表
function fetchDataAndUpdateChart() { function fetchDataAndUpdateChart() {
fetch('/api/stream/ordersummary') fetch('/api/stream/ordersummary') // 替换为你的实际API地址
.then(response => response.json()) .then(response => response.json())
.then(data => { .then(data => {
console.log('Received data:', data);
// 统计每个时间点的订单数量 // 统计每个时间点的订单数量
let orderCounts = {}; let orderCounts = {};
data.forEach(order => { data.forEach(order => {
@ -78,8 +71,6 @@
} }
}); });
console.log('Order counts:', orderCounts);
// 更新图表数据 // 更新图表数据
chartData.labels = Object.keys(orderCounts); // 设置X轴标签为时间 chartData.labels = Object.keys(orderCounts); // 设置X轴标签为时间
chartData.datasets[0].data = Object.values(orderCounts); // 设置Y轴数据为订单数量 chartData.datasets[0].data = Object.values(orderCounts); // 设置Y轴数据为订单数量
@ -90,8 +81,8 @@
.catch(error => console.error('获取数据失败:', error)); .catch(error => console.error('获取数据失败:', error));
} }
// 每10秒更新一次数据 // 每5秒更新一次数据
setInterval(fetchDataAndUpdateChart, 10000); setInterval(fetchDataAndUpdateChart, 5000);
// 初始数据加载 // 初始数据加载
fetchDataAndUpdateChart(); fetchDataAndUpdateChart();

View File

@ -91,7 +91,7 @@
} }
// 每5秒更新一次数据 // 每5秒更新一次数据
setInterval(fetchDataAndUpdateChart, 10000); setInterval(fetchDataAndUpdateChart, 5000);
// 初始数据加载 // 初始数据加载
fetchDataAndUpdateChart(); fetchDataAndUpdateChart();