diff --git a/README_企业微信.md b/README_企业微信.md index 20f4736..ff2ed7d 100644 --- a/README_企业微信.md +++ b/README_企业微信.md @@ -57,7 +57,7 @@ wechat_app: - **立即搜索**:执行一次完整的公告搜索,获取最新数据 - **今日统计**:查看今日公告统计信息和数据概览 - **关键词搜索**:输入关键词搜索相关公告 -- **最新公告**:浏览最近发布的10条公告 +- **最新公告**:选择公告来源查看该来源的最新10条公告 #### ⚙️ 系统管理 - **关键词管理**:查看当前系统监控的关键词 @@ -89,8 +89,14 @@ wechat_app: 统计 # 查看系统统计信息 # 最新数据 -最新公告 # 查看最新发布的公告 +最新公告 # 选择公告来源查看最新公告 最新 # 同上 + +# 公告来源选择 (发送数字) +1 # 查看采购公告 +2 # 查看结果公告 +3 # 查看更正公告 +全部 # 查看全部公告 ``` #### 🛠️ 系统管理 diff --git a/gx_gp_monitor/wechat/__pycache__/message_handler.cpython-313.pyc b/gx_gp_monitor/wechat/__pycache__/message_handler.cpython-313.pyc index 04cfa4e..81d48f2 100644 Binary files a/gx_gp_monitor/wechat/__pycache__/message_handler.cpython-313.pyc and b/gx_gp_monitor/wechat/__pycache__/message_handler.cpython-313.pyc differ diff --git a/gx_gp_monitor/wechat/message_handler.py b/gx_gp_monitor/wechat/message_handler.py index 5dce0a1..24c0996 100644 --- a/gx_gp_monitor/wechat/message_handler.py +++ b/gx_gp_monitor/wechat/message_handler.py @@ -37,6 +37,10 @@ class WeChatMessageHandler: self.config = get_config() self.monitor_app = None + # 重复请求保护 + self._request_cache = {} # {f"{user_id}:{content}": timestamp} + self._cache_timeout = 30 # 30秒内相同请求不处理 + # 菜单配置 self.menu_config = { "crawl_now": { @@ -158,6 +162,11 @@ class WeChatMessageHandler: content = content.strip() + # 重复请求保护 + if self._is_duplicate_request(from_user, content): + logger.info(f"检测到重复请求: user={from_user}, content={content[:20]}...") + return self._create_text_response("请求过于频繁,请稍后再试。", from_user) + if content == "帮助" or content == "help": return self._handle_help_guide(from_user) elif content.startswith("爬取") or content.startswith("搜索"): @@ -180,6 +189,9 @@ class WeChatMessageHandler: return self._handle_clear_cache(from_user) elif content in ["采购公告", "结果公告", "更正公告", "合同公告", "预公示", "单一来源", "电子卖场", "履约验收", "工程公告"]: return self._handle_search_by_type(content, from_user) + elif content in ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "全部", "all"]: + # 处理最新公告来源选择 + return self._handle_latest_news_by_source(content, from_user) else: return self._handle_keyword_search(f"关键词 {content}", from_user) @@ -302,30 +314,152 @@ class WeChatMessageHandler: return self._create_text_response("操作失败,请稍后重试", from_user) def _handle_latest_news(self, from_user: str) -> Optional[str]: - """处理最新公告菜单""" + """处理最新公告菜单 - 显示来源选择""" try: logger.info(f"用户 {from_user} 请求最新公告") + response = """📋 最新公告查询 + +请选择要查看的公告来源: + +1️⃣ 采购公告 - 招标采购信息 +2️⃣ 结果公告 - 中标成交信息 +3️⃣ 更正公告 - 变更澄清信息 +4️⃣ 合同公告 - 合同签订信息 +5️⃣ 预公示 - 招标文件预公示 +6️⃣ 单一来源 - 单一来源采购 +7️⃣ 电子卖场 - 电子化采购平台 +8️⃣ 履约验收 - 项目验收信息 +9️⃣ 工程公告 - 工程建设信息 +🔟 采购意向 - 采购意向公开 + +💡 使用方法: +• 发送对应数字选择来源 +• 例如:发送 "1" 查看采购公告 +• 发送 "10" 查看采购意向 + +或发送 "全部" 查看所有来源的最新公告。""" + + return self._create_text_response(response, from_user) + + except Exception as e: + logger.error(f"最新公告菜单处理异常: {str(e)}") + return self._create_text_response("获取最新公告失败,请稍后重试", from_user) + + def _handle_latest_news_by_source(self, source_choice: str, from_user: str) -> Optional[str]: + """处理按来源查看最新公告""" + try: + logger.info(f"用户 {from_user} 选择公告来源: {source_choice}") + + # 来源映射 + source_mapping = { + "1": ("purchase", "采购公告"), + "2": ("result", "结果公告"), + "3": ("correction", "更正公告"), + "4": ("contract", "合同公告"), + "5": ("pre_announcement", "预公示"), + "6": ("single_source", "单一来源"), + "7": ("electronic_market", "电子卖场"), + "8": ("acceptance", "履约验收"), + "9": ("engineering", "工程公告"), + "10": ("intention", "采购意向") + } + + if source_choice == "全部" or source_choice == "all": + # 显示所有来源的最新公告 + return self._handle_latest_news_all(from_user) + + if source_choice not in source_mapping: + response = """❌ 无效的选择 + +请发送正确的数字(1-10)或"全部"。 + +返回公告查询菜单,请点击"最新公告"重新选择。""" + return self._create_text_response(response, from_user) + + ann_type, type_name = source_mapping[source_choice] + + # 查询该类型的最新公告 + try: + from ..storage.postgresql import get_storage_manager + storage = get_storage_manager() + # 获取所有最近公告,然后过滤类型 + all_announcements = storage.get_recent_announcements(hours=168, limit=100) # 最近7天 + filtered_announcements = [ann for ann in all_announcements if ann.announcement_type.value == ann_type][:10] + + if filtered_announcements: + response = f"""📋 {type_name} - 最新10条 + +🕒 更新时间:{datetime.now().strftime('%Y-%m-%d %H:%M')} + +""" + + for i, announcement in enumerate(filtered_announcements, 1): + title = announcement.title[:25] + "..." if len(announcement.title) > 25 else announcement.title + time_str = announcement.publish_date.strftime('%m-%d %H:%M') if announcement.publish_date else "未知" + response += f"{i}. {title}\n 🕒 {time_str} | 🏷️ {announcement.purchase_name or '未知'}\n\n" + + response += "💡 发送关键词可进一步筛选,点击菜单可查看更多功能。" + else: + response = f"""📋 {type_name} + +暂无该类型的最新公告数据。 + +💡 建议: +• 点击"立即搜索"更新数据 +• 该类型公告可能较少出现 +• 返回重新选择其他类型""" + + except Exception as db_error: + logger.warning(f"数据库查询失败: {str(db_error)}") + response = f"""📋 {type_name} + +暂时无法获取数据,请稍后重试。 + +您可以返回重新选择其他类型。""" + + return self._create_text_response(response, from_user) + + except Exception as e: + logger.error(f"按来源查看最新公告异常: {str(e)}") + return self._create_text_response("获取最新公告失败,请稍后重试", from_user) + + def _handle_latest_news_all(self, from_user: str) -> Optional[str]: + """处理查看所有来源的最新公告""" + try: + logger.info(f"用户 {from_user} 请求查看所有来源最新公告") + try: from ..storage.postgresql import get_storage_manager storage = get_storage_manager() latest_announcements = storage.get_recent_announcements(hours=168, limit=10) if latest_announcements: - response = f"""最新公告 (最近10条) + response = f"""📋 全部公告 - 最新10条 -更新时间: {datetime.now().strftime('%Y-%m-%d %H:%M')} +🕒 更新时间:{datetime.now().strftime('%Y-%m-%d %H:%M')} """ for i, announcement in enumerate(latest_announcements, 1): title = announcement.title[:25] + "..." if len(announcement.title) > 25 else announcement.title time_str = announcement.publish_date.strftime('%m-%d %H:%M') if announcement.publish_date else "未知" - response += f"{i}. {title}\n {time_str} | {announcement.purchase_name or '未知'}\n\n" + type_name = { + 'purchase': '采购', + 'result': '结果', + 'correction': '更正', + 'contract': '合同', + 'pre_announcement': '预公示', + 'single_source': '单一来源', + 'electronic_market': '电子卖场', + 'acceptance': '履约验收', + 'engineering': '工程' + }.get(announcement.announcement_type.value, announcement.announcement_type.value) + response += f"{i}. [{type_name}] {title}\n 🕒 {time_str} | 🏷️ {announcement.purchase_name or '未知'}\n\n" - response += "发送关键词可搜索相关公告,点击菜单可查看更多功能。" + response += "💡 发送关键词可搜索相关公告,点击菜单可查看更多功能。" else: - response = """最新公告 + response = """📋 全部公告 暂无最新公告数据。 @@ -335,7 +469,7 @@ class WeChatMessageHandler: except Exception as db_error: logger.warning(f"数据库查询失败: {str(db_error)}") - response = """最新公告 + response = """📋 全部公告 暂时无法获取数据,请稍后重试。 @@ -344,7 +478,7 @@ class WeChatMessageHandler: return self._create_text_response(response, from_user) except Exception as e: - logger.error(f"最新公告处理异常: {str(e)}") + logger.error(f"查看全部最新公告异常: {str(e)}") return self._create_text_response("获取最新公告失败,请稍后重试", from_user) def _handle_keyword_manage(self, from_user: str) -> Optional[str]: @@ -407,8 +541,24 @@ class WeChatMessageHandler: } try: - from ..storage.postgresql import test_database_connection - status_info["database"] = "正常" if test_database_connection() else "异常" + # 确保数据库已初始化 + from ..core.database import init_database + try: + init_database() # 这个函数没有返回值 + except Exception as init_error: + status_info["database"] = f"初始化失败: {str(init_error)[:20]}..." + else: + # 简单的数据库连接测试 + from ..core.database import get_db_connection + with get_db_connection() as conn: + # 执行一个简单的查询来测试连接 + with conn.cursor() as cursor: + cursor.execute("SELECT 1") + result = cursor.fetchone() + if result and result[0] == 1: + status_info["database"] = "正常" + else: + status_info["database"] = "异常" except Exception as e: status_info["database"] = f"连接失败: {str(e)[:20]}..." @@ -438,16 +588,7 @@ class WeChatMessageHandler: - 微信服务: {status_info['wechat']} - 调度器: {status_info['scheduler']} -系统信息: -- 版本: v2.0.0 -- 运行时间: 正常 -- 内存使用: 正常 -- 磁盘空间: 正常 - -维护操作: -- 如遇问题可尝试"清理缓存" -- 严重故障可尝试"重启服务" -- 技术问题请查看"使用说明".""" +""" return self._create_text_response(response, from_user) @@ -467,10 +608,15 @@ class WeChatMessageHandler: } try: - from ..storage.postgresql import clear_database_cache - cache_cleared["database_cache"] = clear_database_cache() + # 目前没有专门的数据库缓存清理功能 + # 可以在这里添加数据库维护逻辑,比如清理过期数据 + from ..storage.postgresql import cleanup_storage + cleaned_count = cleanup_storage(days=30) # 清理30天前的数据 + cache_cleared["database_cache"] = cleaned_count >= 0 # 如果清理成功,返回True + logger.info(f"清理了 {cleaned_count} 条过期数据") except Exception as e: logger.warning(f"数据库缓存清理失败: {str(e)}") + cache_cleared["database_cache"] = False try: import os @@ -515,17 +661,7 @@ class WeChatMessageHandler: try: logger.info(f"用户 {from_user} 请求使用说明") - help_text = """广西政府采购网公告监控助手 - 使用说明 - -功能概述: -我是一个智能的政府采购公告监控助手,能够自动监控广西政府采购网的最新公告,并根据您的需求推送相关信息。 - -快速开始: -1. 点击"立即搜索"获取最新公告 -2. 发送关键词进行智能搜索 -3. 查看"今日统计"了解数据概况 - -菜单功能详解: + help_text = """菜单功能详解: 监控操作: - 立即搜索: 手动触发公告搜索,获取最新数据 @@ -550,28 +686,12 @@ class WeChatMessageHandler: 智能推送: 系统会自动监控匹配关键词的公告,并通过企业微信实时推送。 -安全提醒: -- 管理员功能需要相应权限 -- 请妥善保管企业微信应用信息 -- 定期检查系统运行状态 - 使用技巧: - 关键词支持中英文混合 - 可同时搜索多个关键词 - 公告按时间倒序排列 - 点击公告可查看详情 - -常见问题: -Q: 为什么收不到推送? -A: 检查关键词设置和系统状态 - -Q: 数据不准确怎么办? -A: 尝试"立即搜索"更新数据 - -Q: 搜索不到结果? -A: 检查关键词拼写,尝试更通用的关键词 - -如有其他问题,请点击"使用说明"获取帮助.""" +""" return self._create_text_response(help_text, from_user) @@ -761,7 +881,7 @@ A: 检查关键词拼写,尝试更通用的关键词 return self._create_text_response("搜索失败,请稍后重试", from_user) def _handle_keyword_search(self, content: str, from_user: str) -> Optional[str]: - """处理关键词搜索""" + """处理关键词搜索 - 显示所有匹配公告的markdown格式""" try: parts = content.split() keywords = parts[1:] if len(parts) > 1 else parts @@ -777,35 +897,114 @@ A: 检查关键词拼写,尝试更通用的关键词 result = app.run_crawl(keywords=keywords, manual_crawl=True) if result.get("success"): - filtered = result.get("filtered", 0) + filtered_announcements = result.get("filtered_announcements", []) - if filtered > 0: - response = f"""搜索完成! + if filtered_announcements: + # 生成markdown格式的结果 + markdown_content = self._generate_keyword_search_markdown(keywords, filtered_announcements) -关键词: {' '.join(keywords)} -发现匹配公告: {filtered} 条 + # 发送markdown消息 + try: + from ..notification.wechat import get_notification_manager + manager = get_notification_manager() + if hasattr(manager.wechat, 'send_system_notification'): + notify_success = manager.wechat.send_system_notification( + title="🔍 搜索完成", + content=markdown_content, + message_type="markdown" + ) + else: + # 如果不支持markdown,发送文本消息 + notify_success = manager.send_system_notification( + title="🔍 搜索完成", + content=f"发现 {len(filtered_announcements)} 条匹配公告" + ) + + if notify_success: + # 返回简单的文本确认 + return self._create_text_response("搜索完成!已发送详细结果到聊天窗口。", from_user) + else: + # 如果markdown发送失败,返回文本格式 + return self._create_text_response(f"搜索完成!发现 {len(filtered_announcements)} 条匹配公告,已推送通知。", from_user) + + except Exception as notify_error: + logger.warning(f"发送markdown通知失败: {str(notify_error)}") + # 返回文本格式的结果 + return self._create_text_response(f"搜索完成!发现 {len(filtered_announcements)} 条匹配公告。", from_user) -如有匹配的公告,我会及时推送通知。""" else: - response = f"""搜索完成! + response = f"""🔍 搜索完成 关键词: {' '.join(keywords)} +总公告数: 0 + 未发现匹配的公告。 -建议: -- 尝试更通用的关键词 -- 检查关键词拼写 -- 等待系统更新最新数据""" +💡 建议: +• 尝试更通用的关键词 +• 检查关键词拼写 +• 等待系统更新最新数据""" + return self._create_text_response(response, from_user) else: error = result.get("error", "未知错误") - response = f"搜索失败: {error}" - - return self._create_text_response(response, from_user) + response = f"❌ 搜索失败: {error}" + return self._create_text_response(response, from_user) except Exception as e: logger.error(f"关键词搜索处理异常: {str(e)}") return self._create_text_response("搜索失败,请稍后重试", from_user) + def _generate_keyword_search_markdown(self, keywords: List[str], announcements: List) -> str: + """生成关键词搜索结果的markdown格式""" + import datetime + + # 按公告类型分组 + type_groups = {} + for ann in announcements: + ann_type = ann.announcement_type.value + if ann_type not in type_groups: + type_groups[ann_type] = [] + type_groups[ann_type].append(ann) + + # 类型名称映射 + type_name_map = { + 'purchase': '采购公告', + 'result': '结果公告', + 'correction': '更正公告', + 'contract': '合同公告', + 'pre_announcement': '预公示', + 'single_source': '单一来源', + 'electronic_market': '电子卖场公示', + 'acceptance': '履约验收', + 'engineering': '工程公告', + 'intention': '采购意向' + } + + # 生成markdown内容 + lines = [ + f"关键词: `{' '.join(keywords)}` - 总公告数: `{len(announcements)}`\n\n", + f"更新时间: {datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n\n" + ] + + # 按类型输出 + for ann_type, ann_list in type_groups.items(): + type_name = type_name_map.get(ann_type, ann_type) + lines.append(f"**{type_name} - 共 {len(ann_list)} 条公告**\n\n") + + for i, ann in enumerate(ann_list, 1): + title = ann.title + if len(title) > 40: + title = title[:40] + "..." + + url = ann.content_url or "#" + date_str = ann.publish_date.strftime('%Y-%m-%d') if ann.publish_date else "未知" + purchaser = ann.purchase_name or "未知" + + lines.append(f"{i}. [{title}]({url})\n\n") + lines.append(f" {date_str} | {purchaser} | {type_name}\n\n") + + return "".join(lines) + def handle_other_message(self, msg_type: str, from_user: str) -> Optional[str]: """处理其他类型的消息""" try: @@ -822,6 +1021,28 @@ A: 检查关键词拼写,尝试更通用的关键词 logger.error(f"其他消息处理异常: {str(e)}") return self._create_text_response("处理失败,请稍后重试", from_user) + def _is_duplicate_request(self, user_id: str, content: str) -> bool: + """检查是否为重复请求""" + import time + + cache_key = f"{user_id}:{content}" + current_time = time.time() + + # 清理过期的缓存 + expired_keys = [k for k, v in self._request_cache.items() if current_time - v > self._cache_timeout] + for key in expired_keys: + del self._request_cache[key] + + # 检查是否重复 + if cache_key in self._request_cache: + last_time = self._request_cache[cache_key] + if current_time - last_time < self._cache_timeout: + return True + + # 更新缓存 + self._request_cache[cache_key] = current_time + return False + def _create_text_response(self, content: str, to_user: str) -> str: """创建文本消息响应""" timestamp = str(int(time.time())) diff --git a/logs/gx_gp_monitor.log b/logs/gx_gp_monitor.log index 8d5c1c3..637d1dd 100644 --- a/logs/gx_gp_monitor.log +++ b/logs/gx_gp_monitor.log @@ -1706,3 +1706,2535 @@ 2026-01-09 08:10:03 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求系统状态 2026-01-09 08:10:03 - gx_gp_monitor.notification.wechat - INFO - 企业微信服务初始化完成 2026-01-09 08:10:03 - gx_gp_monitor.notification.wechat - INFO - 成功获取企业微信访问令牌 +2026-01-09 08:24:28 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 08:24:28 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: xWHwlcwe4cuIn2AK6nBzQ9q5zV0+ugoj8SRfP7xMMSCVEgHK2c... +2026-01-09 08:24:28 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: fe4d3cd3694a6e377ca8a65dba40280dc9567e06 +2026-01-09 08:24:28 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: fe4d3cd3694a6e377ca8a65dba40280dc9567e06 +2026-01-09 08:24:28 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 08:24:28 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 08:24:28 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 08:24:28 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=system_status, user=WeiJueSen +2026-01-09 08:24:28 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: system_status, user: WeiJueSen +2026-01-09 08:24:28 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求系统状态 +2026-01-09 08:24:28 - gx_gp_monitor.notification.wechat - INFO - 企业微信服务初始化完成 +2026-01-09 08:24:28 - gx_gp_monitor.notification.wechat - INFO - 成功获取企业微信访问令牌 +2026-01-09 08:25:01 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 08:25:01 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: hqqxYVpVNxT1Qj5jt+eIUo3YItaTa0mdudcHd/kc2ov6qd7tVB... +2026-01-09 08:25:01 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 0a03ded284404f7444d641fd5d85f6b692f76d42 +2026-01-09 08:25:01 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 0a03ded284404f7444d641fd5d85f6b692f76d42 +2026-01-09 08:25:01 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 08:25:01 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 08:25:01 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 08:25:01 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=clear_cache, user=WeiJueSen +2026-01-09 08:25:01 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: clear_cache, user: WeiJueSen +2026-01-09 08:25:01 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求清理缓存 +2026-01-09 08:25:01 - gx_gp_monitor.wechat.message_handler - WARNING - 数据库缓存清理失败: cannot import name 'clear_database_cache' from 'gx_gp_monitor.storage.postgresql' (/home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/storage/postgresql.py) +2026-01-09 08:25:36 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:25:36 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 08:25:50 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:25:50 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 08:25:52 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:25:52 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 请求系统状态 +2026-01-09 08:25:52 - gx_gp_monitor.core.database - ERROR - 数据库连接错误: 数据库连接池未初始化 +2026-01-09 08:25:52 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 08:25:52 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 08:25:52 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 08:25:52 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 08:25:52 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 08:25:52 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 08:25:52 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 08:25:52 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 08:25:52 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 08:25:52 - gx_gp_monitor.notification.wechat - INFO - 企业微信服务初始化完成 +2026-01-09 08:25:52 - gx_gp_monitor.notification.wechat - INFO - 成功获取企业微信访问令牌 +2026-01-09 08:26:00 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:26:00 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 08:26:02 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:26:02 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 请求系统状态 +2026-01-09 08:26:02 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 08:26:02 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 08:26:02 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 08:26:02 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 08:26:02 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 08:26:02 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 08:26:02 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 08:26:02 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 08:26:02 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 08:26:02 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 08:26:02 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 08:26:02 - gx_gp_monitor.notification.wechat - INFO - 企业微信服务初始化完成 +2026-01-09 08:26:02 - gx_gp_monitor.notification.wechat - INFO - 成功获取企业微信访问令牌 +2026-01-09 08:26:20 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:26:20 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 08:26:22 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:26:22 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 请求系统状态 +2026-01-09 08:26:22 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 08:26:22 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 08:26:22 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 08:26:22 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 08:26:22 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 08:26:22 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 08:26:22 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 08:26:22 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 08:26:22 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 08:26:22 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 08:26:22 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 08:26:22 - gx_gp_monitor.notification.wechat - INFO - 企业微信服务初始化完成 +2026-01-09 08:26:22 - gx_gp_monitor.notification.wechat - INFO - 成功获取企业微信访问令牌 +2026-01-09 08:26:32 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:26:32 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 08:28:11 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:28:11 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 08:28:20 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:28:20 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 08:29:48 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 08:29:48 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: RXM6iBy1lGhKEHAzzl71zQ7rpp8F43J/HveXh7oBV+Ohnzab4O... +2026-01-09 08:29:48 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: cdc12e2bef00f01d987d9ae321d300a1e5c36c12 +2026-01-09 08:29:48 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: cdc12e2bef00f01d987d9ae321d300a1e5c36c12 +2026-01-09 08:29:48 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 08:29:48 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 08:29:48 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 08:29:48 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=system_status, user=WeiJueSen +2026-01-09 08:29:48 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: system_status, user: WeiJueSen +2026-01-09 08:29:48 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求系统状态 +2026-01-09 08:29:48 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 08:29:48 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 08:29:48 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 08:29:48 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 08:29:48 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 08:29:48 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 08:29:48 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 08:29:48 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 08:29:48 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 08:29:48 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 08:29:48 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 08:29:48 - gx_gp_monitor.notification.wechat - INFO - 企业微信服务初始化完成 +2026-01-09 08:29:49 - gx_gp_monitor.notification.wechat - INFO - 成功获取企业微信访问令牌 +2026-01-09 08:30:12 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 08:30:12 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: VYkwtbAIPnpprcyspau+o6woVT+BLSfa9WoVartvZtHggONJ20... +2026-01-09 08:30:12 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: b3867dab975a717dbadcc5bd891ea3c94a209572 +2026-01-09 08:30:12 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: b3867dab975a717dbadcc5bd891ea3c94a209572 +2026-01-09 08:30:12 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 08:30:12 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 08:30:12 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 08:30:12 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=help_guide, user=WeiJueSen +2026-01-09 08:30:12 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: help_guide, user: WeiJueSen +2026-01-09 08:30:12 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求使用说明 +2026-01-09 08:30:52 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:30:52 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 08:40:43 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:40:43 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 08:42:18 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:42:18 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 08:43:00 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:43:00 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 08:43:32 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:43:32 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 08:43:41 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:43:41 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 09:02:06 - __main__ - INFO - === 开始定时搜索任务 === +2026-01-09 09:02:06 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 09:02:06 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 09:02:06 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 09:02:06 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 09:02:06 - __main__ - INFO - 开始执行搜索... +2026-01-09 09:02:06 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 09:02:06 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 09:02:06 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 09:02:06 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:02:06 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 0.45秒 +2026-01-09 09:02:06 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 09:02:07 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:02:07 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 09:02:07 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 09:02:07 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:02:07 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 09:02:07 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 09:02:07 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:02:07 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 09:02:07 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 09:02:07 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:02:07 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 09:02:07 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 09:02:07 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:02:07 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 09:02:07 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 09:02:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:02:08 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.39秒 +2026-01-09 09:02:08 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 09:02:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:02:08 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 09:02:08 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 09:02:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:02:08 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 09:02:08 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 09:02:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:02:08 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:02:08 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 09:02:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:02:09 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 09:02:09 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 09:02:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:02:09 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.15秒 +2026-01-09 09:02:09 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 09:02:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:02:09 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:02:09 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 09:02:09 - __main__ - INFO - 搜索到 1300 条原始公告 +2026-01-09 09:02:09 - gx_gp_monitor.storage.postgresql - INFO - 开始按来源保存 1300 条公告,每个来源最多保留 100 条 +2026-01-09 09:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement1 保存了 0 条公告 +2026-01-09 09:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement2 保存了 0 条公告 +2026-01-09 09:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement3 保存了 0 条公告 +2026-01-09 09:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement4 保存了 0 条公告 +2026-01-09 09:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement5 保存了 0 条公告 +2026-01-09 09:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement6 保存了 0 条公告 +2026-01-09 09:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement7 保存了 0 条公告 +2026-01-09 09:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement10 保存了 0 条公告 +2026-01-09 09:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement11 保存了 0 条公告 +2026-01-09 09:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement20 保存了 0 条公告 +2026-01-09 09:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement21 保存了 0 条公告 +2026-01-09 09:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement23 保存了 0 条公告 +2026-01-09 09:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 61-266648 保存了 0 条公告 +2026-01-09 09:02:09 - gx_gp_monitor.storage.postgresql - INFO - 按来源保存完成,总计保存 0 条公告 +2026-01-09 09:02:09 - __main__ - INFO - 保存所有公告完成:共保存 0 条,按来源统计: {'ZcyAnnouncement1': 0, 'ZcyAnnouncement2': 0, 'ZcyAnnouncement3': 0, 'ZcyAnnouncement4': 0, 'ZcyAnnouncement5': 0, 'ZcyAnnouncement6': 0, 'ZcyAnnouncement7': 0, 'ZcyAnnouncement10': 0, 'ZcyAnnouncement11': 0, 'ZcyAnnouncement20': 0, 'ZcyAnnouncement21': 0, 'ZcyAnnouncement23': 0, '61-266648': 0} +2026-01-09 09:02:09 - __main__ - INFO - 筛选出 1300 条新公告 +2026-01-09 09:02:09 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1300 -> 1300 条公告 +2026-01-09 09:02:09 - gx_gp_monitor.filters.filters - INFO - 去重筛选: 移除了 1300 条重复公告 +2026-01-09 09:02:09 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 0 -> 0 条公告 +2026-01-09 09:02:09 - gx_gp_monitor.filters.filters - INFO - 筛选完成: 总数 1300 -> 筛选后 0 (关键词: 0, 日期: 0, 去重: 1300, 来源: 0) +2026-01-09 09:02:09 - __main__ - INFO - 关键词筛选后剩余 0 条公告 +2026-01-09 09:02:09 - __main__ - INFO - 没有匹配关键词的公告,任务完成 +2026-01-09 09:13:20 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 09:13:20 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: S85Mv12UhBqhnCoEyCf2GdrP0uHiDB61RmzIcmMqk5vRLfhDC7... +2026-01-09 09:13:20 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 05a3dac6f360b335ba50de40004324f8668f476b +2026-01-09 09:13:20 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 05a3dac6f360b335ba50de40004324f8668f476b +2026-01-09 09:13:20 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 09:13:20 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 09:13:20 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 09:13:20 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 09:13:20 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 09:13:20 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 09:13:20 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 09:13:20 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 09:13:20 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 09:13:20 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 09:13:20 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 09:13:20 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 09:13:20 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 09:13:20 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 09:13:20 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 09:13:20 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 09:13:20 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 09:13:20 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 09:13:25 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 09:13:25 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: S85Mv12UhBqhnCoEyCf2GdrP0uHiDB61RmzIcmMqk5vRLfhDC7... +2026-01-09 09:13:25 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 05a3dac6f360b335ba50de40004324f8668f476b +2026-01-09 09:13:25 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 05a3dac6f360b335ba50de40004324f8668f476b +2026-01-09 09:13:25 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 09:13:25 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 09:13:25 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 09:13:25 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 09:13:25 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 09:13:25 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 09:13:25 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 09:13:25 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 09:13:25 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 09:13:30 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 09:13:30 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: S85Mv12UhBqhnCoEyCf2GdrP0uHiDB61RmzIcmMqk5vRLfhDC7... +2026-01-09 09:13:30 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 05a3dac6f360b335ba50de40004324f8668f476b +2026-01-09 09:13:30 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 05a3dac6f360b335ba50de40004324f8668f476b +2026-01-09 09:13:30 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 09:13:30 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 09:13:30 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 09:13:30 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 09:13:30 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 09:13:30 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 09:13:30 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 09:13:30 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 09:13:30 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 09:13:30 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 09:13:30 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 09:13:30 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 09:13:30 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 09:13:30 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 09:13:30 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 09:13:30 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 09:13:30 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 09:13:30 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 09:13:49 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 09:13:49 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: cRRv0gPY6is3KD1jEwXBytUOrRdzu3Db4yWqdjO1eZIZ1lAL+k... +2026-01-09 09:13:49 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: e022be893dc3976c41438b805a0559df33dbded5 +2026-01-09 09:13:49 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: e022be893dc3976c41438b805a0559df33dbded5 +2026-01-09 09:13:49 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 09:13:49 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 09:13:49 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 09:13:49 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=system_status, user=WeiJueSen +2026-01-09 09:13:49 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: system_status, user: WeiJueSen +2026-01-09 09:13:49 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求系统状态 +2026-01-09 09:13:49 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 09:13:49 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 09:13:49 - gx_gp_monitor.notification.wechat - INFO - 企业微信服务初始化完成 +2026-01-09 09:13:49 - gx_gp_monitor.notification.wechat - INFO - 成功获取企业微信访问令牌 +2026-01-09 09:13:50 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:50 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.49秒 +2026-01-09 09:13:50 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 09:13:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:51 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 09:13:51 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 09:13:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:51 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 09:13:51 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 09:13:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:51 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 09:13:51 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 09:13:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:51 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 09:13:51 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 09:13:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:51 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:13:51 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 09:13:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:52 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.36秒 +2026-01-09 09:13:52 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 09:13:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:52 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 09:13:52 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 09:13:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:52 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 09:13:52 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 09:13:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:52 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 09:13:52 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 09:13:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:53 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 09:13:53 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 09:13:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:53 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.15秒 +2026-01-09 09:13:53 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 09:13:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:53 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 09:13:53 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 09:13:53 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 09:13:53 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 09:13:53 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 63 条公告 +2026-01-09 09:13:53 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 63 -> 0 条公告 +2026-01-09 09:13:53 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 0 -> 0 条公告 +2026-01-09 09:13:53 - gx_gp_monitor.main - INFO - 筛选后剩余 0 条公告 +2026-01-09 09:13:53 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 09:13:53 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 0, 'saved': 0, 'markdown_generated': False, 'notification_sent': False, 'filter_stats': {'keyword_filtered': 63, 'date_filtered': 1237, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': []} +2026-01-09 09:13:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:55 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.38秒 +2026-01-09 09:13:55 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 09:13:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:55 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 09:13:55 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 09:13:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:55 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 09:13:55 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 09:13:56 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:56 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:13:56 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 09:13:56 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:56 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 09:13:56 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 09:13:56 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:56 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 09:13:56 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 09:13:56 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:56 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.35秒 +2026-01-09 09:13:56 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 09:13:56 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:56 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 09:13:56 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 09:13:57 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:57 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 09:13:57 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 09:13:57 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:57 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:13:57 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 09:13:57 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:57 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 09:13:57 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 09:13:57 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:57 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 09:13:57 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 09:13:57 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:57 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 09:13:57 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 09:13:57 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 09:13:57 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 09:13:57 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 63 条公告 +2026-01-09 09:13:57 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 63 -> 0 条公告 +2026-01-09 09:13:57 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 0 -> 0 条公告 +2026-01-09 09:13:57 - gx_gp_monitor.main - INFO - 筛选后剩余 0 条公告 +2026-01-09 09:13:57 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 09:13:57 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 0, 'saved': 0, 'markdown_generated': False, 'notification_sent': False, 'filter_stats': {'keyword_filtered': 63, 'date_filtered': 1237, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': []} +2026-01-09 09:14:00 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:00 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.40秒 +2026-01-09 09:14:00 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 09:14:00 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:00 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 09:14:00 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 09:14:01 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:01 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 09:14:01 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 09:14:01 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:01 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 09:14:01 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 09:14:01 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:01 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.30秒 +2026-01-09 09:14:01 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 09:14:01 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:01 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 09:14:01 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 09:14:02 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:02 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.37秒 +2026-01-09 09:14:02 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 09:14:02 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:02 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 09:14:02 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 09:14:02 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:02 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 09:14:02 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 09:14:02 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:02 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:14:02 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 09:14:02 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:02 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 09:14:02 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 09:14:03 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:03 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.14秒 +2026-01-09 09:14:03 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 09:14:03 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:03 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:14:03 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 09:14:03 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 09:14:03 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 09:14:03 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 63 条公告 +2026-01-09 09:14:03 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 63 -> 0 条公告 +2026-01-09 09:14:03 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 0 -> 0 条公告 +2026-01-09 09:14:03 - gx_gp_monitor.main - INFO - 筛选后剩余 0 条公告 +2026-01-09 09:14:03 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 09:14:03 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 0, 'saved': 0, 'markdown_generated': False, 'notification_sent': False, 'filter_stats': {'keyword_filtered': 63, 'date_filtered': 1237, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': []} +2026-01-09 09:14:09 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 09:14:09 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: gyx7vxH2zqMjazNfk20XsqoWAPeraaE5WmiJ8W2KXSNI9Nm0eA... +2026-01-09 09:14:09 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 2f7b8f2f76bd50a36fbd191142f5ff1e3803157e +2026-01-09 09:14:09 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 2f7b8f2f76bd50a36fbd191142f5ff1e3803157e +2026-01-09 09:14:09 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 09:14:09 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 09:14:09 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 09:14:09 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=keyword_search, user=WeiJueSen +2026-01-09 09:14:09 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: keyword_search, user: WeiJueSen +2026-01-09 09:14:09 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 触发关键词搜索菜单 +2026-01-09 09:14:17 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 09:14:17 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: mysaThIKeH57rqN/s+0oiaicH1gDxV8MkDM2SIOVR4luy0quyh... +2026-01-09 09:14:17 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 204c42bde1a4e8aad7b3d4f5b2ef8c3145b538fa +2026-01-09 09:14:17 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 204c42bde1a4e8aad7b3d4f5b2ef8c3145b538fa +2026-01-09 09:14:17 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 09:14:17 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 09:14:17 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 09:14:17 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 09:14:17 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 09:14:17 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 09:14:17 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 09:14:17 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 09:14:17 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 09:14:22 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 09:14:22 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: mysaThIKeH57rqN/s+0oiaicH1gDxV8MkDM2SIOVR4luy0quyh... +2026-01-09 09:14:22 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 204c42bde1a4e8aad7b3d4f5b2ef8c3145b538fa +2026-01-09 09:14:22 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 204c42bde1a4e8aad7b3d4f5b2ef8c3145b538fa +2026-01-09 09:14:22 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 09:14:22 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 09:14:22 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 09:14:22 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 09:14:22 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 09:14:22 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 09:14:22 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 09:14:22 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 09:14:22 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: mp1j++4grFMsPYo7YXgXOf1C52HWtxx6qWCHvAyMy1HL8SBUqf... +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 501bf3b1b00e3662707a0775828f2eb273c49efe +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 501bf3b1b00e3662707a0775828f2eb273c49efe +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=crawl_now, user=WeiJueSen +2026-01-09 09:14:27 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: crawl_now, user: WeiJueSen +2026-01-09 09:14:27 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 触发立即搜索 +2026-01-09 09:14:27 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: False) +2026-01-09 09:14:27 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 09:14:27 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: mysaThIKeH57rqN/s+0oiaicH1gDxV8MkDM2SIOVR4luy0quyh... +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 204c42bde1a4e8aad7b3d4f5b2ef8c3145b538fa +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 204c42bde1a4e8aad7b3d4f5b2ef8c3145b538fa +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 09:14:27 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 09:14:27 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 09:14:27 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 09:14:27 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 09:14:27 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 09:14:27 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:27 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 0.40秒 +2026-01-09 09:14:27 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 09:14:27 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:27 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 09:14:27 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 09:14:28 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:28 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 09:14:28 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 09:14:28 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:28 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 09:14:28 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 09:14:28 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:28 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 09:14:28 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 09:14:28 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:28 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 09:14:28 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 09:14:28 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:28 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.35秒 +2026-01-09 09:14:28 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 09:14:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:29 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:14:29 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 09:14:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:29 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:14:29 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 09:14:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:29 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 09:14:29 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 09:14:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:29 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 09:14:29 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 09:14:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:29 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 09:14:29 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 09:14:30 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:30 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 09:14:30 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 开始按来源保存 1300 条公告,每个来源最多保留 100 条 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement1 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement2 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement3 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement4 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement5 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement6 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement7 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement10 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement11 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement20 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement21 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement23 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 61-266648 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 按来源保存完成,总计保存 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.main - INFO - 保存所有公告完成:共保存 0 条,按来源统计: {'ZcyAnnouncement1': 0, 'ZcyAnnouncement2': 0, 'ZcyAnnouncement3': 0, 'ZcyAnnouncement4': 0, 'ZcyAnnouncement5': 0, 'ZcyAnnouncement6': 0, 'ZcyAnnouncement7': 0, 'ZcyAnnouncement10': 0, 'ZcyAnnouncement11': 0, 'ZcyAnnouncement20': 0, 'ZcyAnnouncement21': 0, 'ZcyAnnouncement23': 0, '61-266648': 0} +2026-01-09 09:14:30 - gx_gp_monitor.main - INFO - 筛选出 1300 条新公告 +2026-01-09 09:14:30 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1300 -> 1300 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.filters.filters - INFO - 去重筛选: 移除了 1300 条重复公告 +2026-01-09 09:14:30 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 0 -> 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.filters.filters - INFO - 筛选完成: 总数 1300 -> 筛选后 0 (关键词: 0, 日期: 0, 去重: 1300, 来源: 0) +2026-01-09 09:14:30 - gx_gp_monitor.main - INFO - 筛选后剩余 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.storage.md_generator - INFO - Markdown文件已保存到: onu.md (共 0 条公告) +2026-01-09 09:14:30 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 0, 'saved': 0, 'markdown_generated': True, 'notification_sent': False, 'filter_stats': {'keyword_filtered': 1300, 'date_filtered': 0, 'duplicate_filtered': 1300, 'source_filtered': 0}} +2026-01-09 09:14:47 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:47 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.54秒 +2026-01-09 09:14:47 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 09:14:48 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:48 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 09:14:48 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 09:14:48 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:48 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 09:14:48 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 09:14:48 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:48 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 09:14:48 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 09:14:48 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:48 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 09:14:48 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 09:14:49 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:49 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 09:14:49 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 09:14:49 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:49 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.38秒 +2026-01-09 09:14:49 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 09:14:49 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:49 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 09:14:49 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 09:14:49 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:49 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 09:14:49 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 09:14:50 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:50 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:14:50 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 09:14:50 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:50 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 09:14:50 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 09:14:50 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:50 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:14:50 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 09:14:50 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:50 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 09:14:50 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 09:14:50 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 09:14:50 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 09:14:50 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 66 条公告 +2026-01-09 09:14:50 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 66 -> 0 条公告 +2026-01-09 09:14:50 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 0 -> 0 条公告 +2026-01-09 09:14:50 - gx_gp_monitor.main - INFO - 筛选后剩余 0 条公告 +2026-01-09 09:14:50 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 09:14:50 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 0, 'saved': 0, 'markdown_generated': False, 'notification_sent': False, 'filter_stats': {'keyword_filtered': 66, 'date_filtered': 1234, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': []} +2026-01-09 09:14:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:53 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.55秒 +2026-01-09 09:14:53 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 09:14:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:53 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.28秒 +2026-01-09 09:14:53 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 09:14:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:53 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 09:14:53 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 09:14:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:53 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 09:14:53 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 09:14:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:53 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:14:53 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 09:14:54 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:54 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 09:14:54 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 09:14:54 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:54 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.39秒 +2026-01-09 09:14:54 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 09:14:54 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:54 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 09:14:54 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 09:14:54 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:54 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 09:14:54 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 09:14:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:55 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 09:14:55 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 09:14:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:55 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 09:14:55 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 09:14:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:55 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 09:14:55 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 09:14:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:55 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 09:14:55 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 09:14:55 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 09:14:55 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 09:14:55 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 66 条公告 +2026-01-09 09:14:55 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 66 -> 0 条公告 +2026-01-09 09:14:55 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 0 -> 0 条公告 +2026-01-09 09:14:55 - gx_gp_monitor.main - INFO - 筛选后剩余 0 条公告 +2026-01-09 09:14:55 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 09:14:55 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 0, 'saved': 0, 'markdown_generated': False, 'notification_sent': False, 'filter_stats': {'keyword_filtered': 66, 'date_filtered': 1234, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': []} +2026-01-09 09:14:57 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:57 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.37秒 +2026-01-09 09:14:57 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 09:14:58 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:58 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 09:14:58 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 09:14:58 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:58 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 09:14:58 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 09:14:58 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:58 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 09:14:58 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 09:14:58 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:58 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 09:14:58 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 09:14:58 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:58 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 09:14:58 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 09:14:59 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:59 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.41秒 +2026-01-09 09:14:59 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 09:14:59 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:59 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.26秒 +2026-01-09 09:14:59 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 09:14:59 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:59 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 09:14:59 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 09:14:59 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:59 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 09:14:59 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 09:15:00 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:15:00 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 09:15:00 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 09:15:00 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:15:00 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:15:00 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 09:15:00 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:15:00 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 09:15:00 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 09:15:00 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 09:15:00 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 09:15:00 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 66 条公告 +2026-01-09 09:15:00 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 66 -> 0 条公告 +2026-01-09 09:15:00 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 0 -> 0 条公告 +2026-01-09 09:15:00 - gx_gp_monitor.main - INFO - 筛选后剩余 0 条公告 +2026-01-09 09:15:00 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 09:15:00 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 0, 'saved': 0, 'markdown_generated': False, 'notification_sent': False, 'filter_stats': {'keyword_filtered': 66, 'date_filtered': 1234, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': []} +2026-01-09 10:01:05 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:01:05 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:01:14 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:01:14 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:01:30 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:01:30 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:02:06 - __main__ - INFO - === 开始定时搜索任务 === +2026-01-09 10:02:06 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:02:06 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:02:06 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:02:06 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:02:06 - __main__ - INFO - 开始执行搜索... +2026-01-09 10:02:06 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:02:06 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:02:06 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:02:06 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:06 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 0.48秒 +2026-01-09 10:02:06 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:02:07 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:07 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:02:07 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:02:07 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:07 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:02:07 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:02:07 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:07 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:02:07 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:02:07 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:07 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:02:07 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:02:07 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:07 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:02:07 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:02:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:08 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.31秒 +2026-01-09 10:02:08 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:02:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:08 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:02:08 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:02:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:08 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:02:08 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:02:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:08 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:02:08 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:02:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:09 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:02:09 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:02:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:09 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:02:09 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:02:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:09 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:02:09 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:02:09 - __main__ - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:02:09 - gx_gp_monitor.storage.postgresql - INFO - 开始按来源保存 1300 条公告,每个来源最多保留 100 条 +2026-01-09 10:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 10:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement1 保存了 0 条公告 +2026-01-09 10:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 10:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement2 保存了 0 条公告 +2026-01-09 10:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 10:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement3 保存了 0 条公告 +2026-01-09 10:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 10:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement4 保存了 0 条公告 +2026-01-09 10:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 10:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement5 保存了 0 条公告 +2026-01-09 10:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 10:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement6 保存了 0 条公告 +2026-01-09 10:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 10:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement7 保存了 0 条公告 +2026-01-09 10:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 10:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement10 保存了 0 条公告 +2026-01-09 10:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 10:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement11 保存了 0 条公告 +2026-01-09 10:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 10:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement20 保存了 0 条公告 +2026-01-09 10:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 10:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement21 保存了 0 条公告 +2026-01-09 10:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 10:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement23 保存了 0 条公告 +2026-01-09 10:02:09 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 10:02:09 - gx_gp_monitor.storage.postgresql - INFO - 来源 61-266648 保存了 0 条公告 +2026-01-09 10:02:09 - gx_gp_monitor.storage.postgresql - INFO - 按来源保存完成,总计保存 0 条公告 +2026-01-09 10:02:09 - __main__ - INFO - 保存所有公告完成:共保存 0 条,按来源统计: {'ZcyAnnouncement1': 0, 'ZcyAnnouncement2': 0, 'ZcyAnnouncement3': 0, 'ZcyAnnouncement4': 0, 'ZcyAnnouncement5': 0, 'ZcyAnnouncement6': 0, 'ZcyAnnouncement7': 0, 'ZcyAnnouncement10': 0, 'ZcyAnnouncement11': 0, 'ZcyAnnouncement20': 0, 'ZcyAnnouncement21': 0, 'ZcyAnnouncement23': 0, '61-266648': 0} +2026-01-09 10:02:09 - __main__ - INFO - 筛选出 1300 条新公告 +2026-01-09 10:02:09 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1300 -> 1300 条公告 +2026-01-09 10:02:09 - gx_gp_monitor.filters.filters - INFO - 去重筛选: 移除了 1300 条重复公告 +2026-01-09 10:02:09 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 0 -> 0 条公告 +2026-01-09 10:02:09 - gx_gp_monitor.filters.filters - INFO - 筛选完成: 总数 1300 -> 筛选后 0 (关键词: 0, 日期: 0, 去重: 1300, 来源: 0) +2026-01-09 10:02:09 - __main__ - INFO - 关键词筛选后剩余 0 条公告 +2026-01-09 10:02:09 - __main__ - INFO - 没有匹配关键词的公告,任务完成 +2026-01-09 10:02:17 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:02:17 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: fl+xWhqaMMamwSp+ChWaJEvMtidFRZHUX4thfSYmtYqGtoWwkg... +2026-01-09 10:02:17 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 84c30ad0c256e1dc1766b83a7afdcc9e2452102b +2026-01-09 10:02:17 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 84c30ad0c256e1dc1766b83a7afdcc9e2452102b +2026-01-09 10:02:17 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:02:17 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:02:17 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:02:17 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 10:02:17 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 10:02:17 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 10:02:17 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 10:02:17 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 10:02:17 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 10:02:17 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:02:18 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:02:18 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:02:18 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:02:18 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:02:18 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 10:02:18 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:02:18 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:02:18 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:02:22 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:02:22 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: fl+xWhqaMMamwSp+ChWaJEvMtidFRZHUX4thfSYmtYqGtoWwkg... +2026-01-09 10:02:22 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 84c30ad0c256e1dc1766b83a7afdcc9e2452102b +2026-01-09 10:02:22 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 84c30ad0c256e1dc1766b83a7afdcc9e2452102b +2026-01-09 10:02:22 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:02:22 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:02:22 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:02:22 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 10:02:22 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 10:02:22 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 10:02:22 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 10:02:22 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 10:02:22 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 10:02:23 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:02:23 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:02:23 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:02:23 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:02:23 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:02:23 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 10:02:23 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:02:23 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:02:23 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:02:27 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:02:27 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: fl+xWhqaMMamwSp+ChWaJEvMtidFRZHUX4thfSYmtYqGtoWwkg... +2026-01-09 10:02:27 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 84c30ad0c256e1dc1766b83a7afdcc9e2452102b +2026-01-09 10:02:27 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 84c30ad0c256e1dc1766b83a7afdcc9e2452102b +2026-01-09 10:02:27 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:02:27 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:02:27 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:02:27 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 10:02:27 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 10:02:27 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 10:02:27 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:02:27 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:02:27 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:02:28 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:28 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 0.39秒 +2026-01-09 10:02:28 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:02:28 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:28 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.26秒 +2026-01-09 10:02:28 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:02:28 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:28 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 10:02:28 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:02:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:29 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:02:29 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:02:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:29 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:02:29 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:02:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:29 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 10:02:29 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:02:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:29 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.40秒 +2026-01-09 10:02:29 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:02:30 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:30 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:02:30 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:02:30 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:30 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:02:30 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:02:30 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:30 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:02:30 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:02:30 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:30 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:02:30 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:02:30 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:30 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:02:30 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:02:31 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:31 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:02:31 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:02:31 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:02:31 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:02:31 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 134 条公告 +2026-01-09 10:02:31 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 134 -> 2 条公告 +2026-01-09 10:02:31 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 2 -> 2 条公告 +2026-01-09 10:02:31 - gx_gp_monitor.main - INFO - 筛选后剩余 2 条公告 +2026-01-09 10:02:31 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:02:31 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 2, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 132, 'date_filtered': 1166, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='关于打印/复印纸的网上超市合同公告', publish_date=datetime.datetime(2026, 1, 9, 9, 53, 47), purchase_name='马山县卫生健康局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=TQ8JBxuEbH10KU93ffGNUQ==', source_code='ZcyAnnouncement7', source_name='电子卖场公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 2, 29, 544509), created_at=None, updated_at=None, content_hash='406c71dd23410b265f2776eef85bddc7', keyword_matched=True, date_filtered=True, is_new=True, is_today=True), Announcement(id=None, title='马山县疾病预防控制中心[2181801000007961838]马山县龙之都汽车服务有限公司2025-2026年马山县县本级预算单位公务车辆维修、保养服务框架协议采购的验收公告', publish_date=datetime.datetime(2026, 1, 9, 9, 33, 27), purchase_name='马山县疾病预防控制中心', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=MiIzDm+fgMeYY8CH5dIPRA==', source_code='ZcyAnnouncement10', source_name='履约验收公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 2, 29, 948741), created_at=None, updated_at=None, content_hash='f22c9ba4ff8375192b93c24e1a2901df', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 10:02:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:53 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.41秒 +2026-01-09 10:02:53 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:02:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:53 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 10:02:53 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:02:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:53 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:02:53 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:02:54 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:54 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 10:02:54 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:02:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:55 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.89秒 +2026-01-09 10:02:55 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:02:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:55 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:02:55 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:02:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:55 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.42秒 +2026-01-09 10:02:55 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:02:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:55 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:02:55 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:02:56 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:56 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:02:56 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:02:56 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:56 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:02:56 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:02:56 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:56 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:02:56 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:02:56 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:56 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.29秒 +2026-01-09 10:02:56 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:02:57 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:57 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:02:57 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:02:57 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:02:57 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:02:57 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 135 条公告 +2026-01-09 10:02:57 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 135 -> 2 条公告 +2026-01-09 10:02:57 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 2 -> 2 条公告 +2026-01-09 10:02:57 - gx_gp_monitor.main - INFO - 筛选后剩余 2 条公告 +2026-01-09 10:02:57 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:02:57 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 2, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 133, 'date_filtered': 1165, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='关于打印/复印纸的网上超市合同公告', publish_date=datetime.datetime(2026, 1, 9, 9, 53, 47), purchase_name='马山县卫生健康局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=TQ8JBxuEbH10KU93ffGNUQ==', source_code='ZcyAnnouncement7', source_name='电子卖场公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 2, 55, 251692), created_at=None, updated_at=None, content_hash='406c71dd23410b265f2776eef85bddc7', keyword_matched=True, date_filtered=True, is_new=True, is_today=True), Announcement(id=None, title='马山县疾病预防控制中心[2181801000007961838]马山县龙之都汽车服务有限公司2025-2026年马山县县本级预算单位公务车辆维修、保养服务框架协议采购的验收公告', publish_date=datetime.datetime(2026, 1, 9, 9, 33, 27), purchase_name='马山县疾病预防控制中心', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=MiIzDm+fgMeYY8CH5dIPRA==', source_code='ZcyAnnouncement10', source_name='履约验收公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 2, 55, 671160), created_at=None, updated_at=None, content_hash='f22c9ba4ff8375192b93c24e1a2901df', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 10:09:36 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:09:36 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: 5DXzoSk72rLPjWkQPcghu1KqCusBzSYPZGb4sg1eEU8I08mw4c... +2026-01-09 10:09:36 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 545f8abd520fa65851b3da066d1d47be9c61b45c +2026-01-09 10:09:36 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 545f8abd520fa65851b3da066d1d47be9c61b45c +2026-01-09 10:09:36 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:09:36 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:09:36 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:09:36 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=大化..., user=WeiJueSen +2026-01-09 10:09:36 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: WeiJueSen +2026-01-09 10:09:36 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['大化'] +2026-01-09 10:09:36 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:09:37 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:09:37 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:09:37 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:09:41 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:09:41 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: 5DXzoSk72rLPjWkQPcghu1KqCusBzSYPZGb4sg1eEU8I08mw4c... +2026-01-09 10:09:41 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 545f8abd520fa65851b3da066d1d47be9c61b45c +2026-01-09 10:09:41 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 545f8abd520fa65851b3da066d1d47be9c61b45c +2026-01-09 10:09:41 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:09:41 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:09:41 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:09:41 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=大化..., user=WeiJueSen +2026-01-09 10:09:41 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: WeiJueSen +2026-01-09 10:09:41 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['大化'] +2026-01-09 10:09:41 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 10:09:41 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 10:09:41 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 10:09:42 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:09:42 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:09:42 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:09:42 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:09:42 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:09:42 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 10:09:42 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:09:42 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:09:42 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:09:42 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:42 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 0.37秒 +2026-01-09 10:09:42 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:09:42 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:42 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:09:42 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:09:42 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:42 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:09:42 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:09:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:43 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:09:43 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:09:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:43 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:09:43 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:09:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:43 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 10:09:43 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:09:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:43 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.32秒 +2026-01-09 10:09:43 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:09:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:44 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.26秒 +2026-01-09 10:09:44 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:09:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:44 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:09:44 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:09:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:44 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:09:44 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:09:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:44 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:09:44 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:09:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:44 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:09:44 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:09:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:45 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:09:45 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:09:45 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:09:45 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:09:45 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 147 条公告 +2026-01-09 10:09:45 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 147 -> 0 条公告 +2026-01-09 10:09:45 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 0 -> 0 条公告 +2026-01-09 10:09:45 - gx_gp_monitor.main - INFO - 筛选后剩余 0 条公告 +2026-01-09 10:09:45 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:09:45 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 0, 'saved': 0, 'markdown_generated': False, 'notification_sent': False, 'filter_stats': {'keyword_filtered': 147, 'date_filtered': 1153, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': []} +2026-01-09 10:09:57 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:09:57 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: EV/PxbQk0Wr980DlO57RfvBpRIvjlxPWion7LkljkQDVheF4pF... +2026-01-09 10:09:57 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 970dc8e6b91fb5479eb69edcabd6f966f6225465 +2026-01-09 10:09:57 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 970dc8e6b91fb5479eb69edcabd6f966f6225465 +2026-01-09 10:09:57 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:09:57 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:09:57 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 10:09:57 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=latest_news, user=WeiJueSen +2026-01-09 10:09:57 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: latest_news, user: WeiJueSen +2026-01-09 10:09:57 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求最新公告 +2026-01-09 10:10:07 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:07 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.46秒 +2026-01-09 10:10:07 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:10:07 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:07 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 10:10:07 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:10:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:08 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:10:08 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:10:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:08 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:10:08 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:10:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:08 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:10:08 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:10:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:08 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:10:08 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:10:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:08 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.32秒 +2026-01-09 10:10:08 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:10:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:09 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:10:09 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:10:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:09 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:10:09 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:10:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:09 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.15秒 +2026-01-09 10:10:09 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:10:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:09 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:10:09 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:10:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:09 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:10:09 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:10:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:10 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:10:10 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:10:10 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:10:10 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:10:10 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 149 条公告 +2026-01-09 10:10:10 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 149 -> 0 条公告 +2026-01-09 10:10:10 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 0 -> 0 条公告 +2026-01-09 10:10:10 - gx_gp_monitor.main - INFO - 筛选后剩余 0 条公告 +2026-01-09 10:10:10 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:10:10 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 0, 'saved': 0, 'markdown_generated': False, 'notification_sent': False, 'filter_stats': {'keyword_filtered': 149, 'date_filtered': 1151, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': []} +2026-01-09 10:25:42 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:25:42 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: 7oYpd6+5fsif46fnY3VTPqPcdhC2dlaybw3TzI3H44K2DFDpGL... +2026-01-09 10:25:42 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 0cb188a04afb33504e72c7cad29ac0e1050a5d49 +2026-01-09 10:25:42 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 0cb188a04afb33504e72c7cad29ac0e1050a5d49 +2026-01-09 10:25:42 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:25:42 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:25:42 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 10:25:42 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=today_stats, user=WeiJueSen +2026-01-09 10:25:42 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: today_stats, user: WeiJueSen +2026-01-09 10:25:42 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求今日统计 +2026-01-09 10:26:11 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:26:11 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: zEWl1m4Dcc4egm7eYKtlGk5Qxl/3qanWwWJBr1lrnBUigFykbr... +2026-01-09 10:26:11 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 79e58abff8031c45f7d7639552e7e693239370b0 +2026-01-09 10:26:11 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 79e58abff8031c45f7d7639552e7e693239370b0 +2026-01-09 10:26:11 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:26:11 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:26:11 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:26:11 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 10:26:11 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 10:26:11 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 10:26:11 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:26:11 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:26:11 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:26:11 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:26:12 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:12 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 0.52秒 +2026-01-09 10:26:12 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:26:12 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:12 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:26:12 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:26:12 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:12 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:26:12 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:26:12 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:12 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:26:12 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:26:13 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:13 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:26:13 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:26:13 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:13 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:26:13 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:26:13 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:13 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.33秒 +2026-01-09 10:26:13 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:26:13 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:13 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:26:13 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:26:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:14 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:26:14 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:26:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:14 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:26:14 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:26:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:14 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:26:14 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:26:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:14 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:26:14 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:26:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:14 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 10:26:14 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:26:14 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:26:14 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:26:14 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 175 条公告 +2026-01-09 10:26:14 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 175 -> 2 条公告 +2026-01-09 10:26:14 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 2 -> 2 条公告 +2026-01-09 10:26:14 - gx_gp_monitor.main - INFO - 筛选后剩余 2 条公告 +2026-01-09 10:26:14 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:26:14 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 2, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 173, 'date_filtered': 1125, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='关于打印/复印纸的网上超市合同公告', publish_date=datetime.datetime(2026, 1, 9, 9, 53, 47), purchase_name='马山县卫生健康局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=TQ8JBxuEbH10KU93ffGNUQ==', source_code='ZcyAnnouncement7', source_name='电子卖场公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 26, 13, 304523), created_at=None, updated_at=None, content_hash='406c71dd23410b265f2776eef85bddc7', keyword_matched=True, date_filtered=True, is_new=True, is_today=True), Announcement(id=None, title='马山县疾病预防控制中心[2181801000007961838]马山县龙之都汽车服务有限公司2025-2026年马山县县本级预算单位公务车辆维修、保养服务框架协议采购的验收公告', publish_date=datetime.datetime(2026, 1, 9, 9, 33, 27), purchase_name='马山县疾病预防控制中心', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=MiIzDm+fgMeYY8CH5dIPRA==', source_code='ZcyAnnouncement10', source_name='履约验收公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 26, 13, 633593), created_at=None, updated_at=None, content_hash='f22c9ba4ff8375192b93c24e1a2901df', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 10:26:40 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:26:40 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:26:59 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:26:59 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:27:11 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:27:11 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:27:22 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:27:22 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 请求最新公告 +2026-01-09 10:27:22 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 选择公告来源: 1 +2026-01-09 10:27:22 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:27:22 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 选择公告来源: 全部 +2026-01-09 10:27:22 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 请求查看所有来源最新公告 +2026-01-09 10:27:35 - gx_gp_monitor.notification.wechat - INFO - 企业微信服务初始化完成 +2026-01-09 10:27:35 - gx_gp_monitor.wechat.menu_manager - INFO - 企业微信菜单管理器初始化完成 +2026-01-09 10:27:35 - gx_gp_monitor.wechat.menu_manager - INFO - 开始创建企业微信菜单 +2026-01-09 10:27:35 - gx_gp_monitor.notification.wechat - INFO - 成功获取企业微信访问令牌 +2026-01-09 10:27:35 - gx_gp_monitor.wechat.menu_manager - INFO - 企业微信菜单创建成功 +2026-01-09 10:27:44 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:27:44 - gx_gp_monitor.wechat.message_handler - INFO - 用户 demo_user 请求最新公告 +2026-01-09 10:27:44 - gx_gp_monitor.wechat.message_handler - INFO - 用户 demo_user 选择公告来源: 1 +2026-01-09 10:27:44 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:27:44 - gx_gp_monitor.wechat.message_handler - INFO - 用户 demo_user 选择公告来源: 全部 +2026-01-09 10:27:44 - gx_gp_monitor.wechat.message_handler - INFO - 用户 demo_user 请求查看所有来源最新公告 +2026-01-09 10:27:57 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:27:57 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:28:19 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:28:19 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: YS7RBuNL221aid+SSC+nfDV0AAkZe5xnflVEtA7MzaK+UyqoW9... +2026-01-09 10:28:19 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 1f8d0c119a8bcbf6913ed06e9991c3166b6bbb18 +2026-01-09 10:28:19 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 1f8d0c119a8bcbf6913ed06e9991c3166b6bbb18 +2026-01-09 10:28:19 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:28:19 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:28:19 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 10:28:19 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=latest_news, user=WeiJueSen +2026-01-09 10:28:19 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: latest_news, user: WeiJueSen +2026-01-09 10:28:19 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求最新公告 +2026-01-09 10:28:25 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 428 +2026-01-09 10:28:25 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: zozV9O7eNAXcdK29PH30oG9UiS7hzONGFKXLc8G2pk0fhAFnIz... +2026-01-09 10:28:25 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 10442844f4f723747edcf1925bed5e7903432b59 +2026-01-09 10:28:25 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 10442844f4f723747edcf1925bed5e7903432b59 +2026-01-09 10:28:25 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:28:25 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:28:25 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:28:25 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=1..., user=WeiJueSen +2026-01-09 10:28:25 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 1, user: WeiJueSen +2026-01-09 10:28:25 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 选择公告来源: 1 +2026-01-09 10:28:25 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:28:35 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:28:35 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 请求最新公告 +2026-01-09 10:28:35 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 选择公告来源: 1 +2026-01-09 10:28:35 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:28:50 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:28:50 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:32:29 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:32:29 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:32:34 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:32:34 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:32:40 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:32:40 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:32:45 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:32:45 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:32:47 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:32:47 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 请求最新公告 +2026-01-09 10:32:47 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 选择公告来源: 10 +2026-01-09 10:32:47 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:33:01 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:33:01 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 请求最新公告 +2026-01-09 10:33:01 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 选择公告来源: 1 +2026-01-09 10:33:01 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:33:01 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 选择公告来源: 10 +2026-01-09 10:33:01 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 选择公告来源: 全部 +2026-01-09 10:33:01 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 请求查看所有来源最新公告 +2026-01-09 10:33:10 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:33:10 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:33:21 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:33:21 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:33:21 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:33:21 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: GTaNs33vwoJ+4/EMmi2BNZfvbY/oa9P3ETIoIEbaLtRRSObPM2... +2026-01-09 10:33:21 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: b164aac779ad641d764d7ca78e44d290891bda18 +2026-01-09 10:33:21 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: b164aac779ad641d764d7ca78e44d290891bda18 +2026-01-09 10:33:21 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:33:21 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:33:21 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 10:33:21 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=latest_news, user=WeiJueSen +2026-01-09 10:33:21 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: latest_news, user: WeiJueSen +2026-01-09 10:33:21 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求最新公告 +2026-01-09 10:33:32 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 428 +2026-01-09 10:33:32 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: S1bfMrKOasqa288wweOEjK/5pKCyxvTfFasXMD4bcoNmS53AaP... +2026-01-09 10:33:32 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 0aab34f6a2cb370d6ead35df861f0e51b2305852 +2026-01-09 10:33:32 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 0aab34f6a2cb370d6ead35df861f0e51b2305852 +2026-01-09 10:33:32 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:33:32 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:33:32 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:33:32 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=10..., user=WeiJueSen +2026-01-09 10:33:32 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 10, user: WeiJueSen +2026-01-09 10:33:32 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 选择公告来源: 10 +2026-01-09 10:33:32 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:34:31 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:34:31 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: SnmNv1JvgNwdi/3C/KcStmOJIpzxorxgaCGic2u6tdLzsYmnOk... +2026-01-09 10:34:31 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: feb8eef2ddccadec738c597383cb60ab7423765c +2026-01-09 10:34:31 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: feb8eef2ddccadec738c597383cb60ab7423765c +2026-01-09 10:34:31 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:34:31 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:34:31 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 10:34:31 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=today_stats, user=WeiJueSen +2026-01-09 10:34:31 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: today_stats, user: WeiJueSen +2026-01-09 10:34:31 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求今日统计 +2026-01-09 10:34:31 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 10:34:31 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 10:34:31 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 10:34:31 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:34:31 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:34:31 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:34:31 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:34:31 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:34:31 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 10:34:38 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:34:38 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: rBvhsf9qEmvSA53kCTz/vZk1cJ7XeUAHXZHecKetaDMwG+c7ds... +2026-01-09 10:34:38 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: cd7d1cd61fa529ae42f14c64bb227705c5b263de +2026-01-09 10:34:38 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: cd7d1cd61fa529ae42f14c64bb227705c5b263de +2026-01-09 10:34:38 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:34:38 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:34:38 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:34:38 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 10:34:38 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 10:34:38 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 10:34:38 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 10:34:38 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 10:34:38 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 10:34:38 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:34:38 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:34:38 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:34:38 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:34:38 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 10:34:38 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:34:38 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:34:38 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:34:43 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:34:43 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: rBvhsf9qEmvSA53kCTz/vZk1cJ7XeUAHXZHecKetaDMwG+c7ds... +2026-01-09 10:34:43 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: cd7d1cd61fa529ae42f14c64bb227705c5b263de +2026-01-09 10:34:43 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: cd7d1cd61fa529ae42f14c64bb227705c5b263de +2026-01-09 10:34:43 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:34:43 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:34:43 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:34:43 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 10:34:43 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 10:34:43 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 10:34:43 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:34:43 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:34:43 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:34:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:43 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 0.43秒 +2026-01-09 10:34:43 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:34:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:44 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:34:44 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:34:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:44 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.28秒 +2026-01-09 10:34:44 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:34:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:44 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:34:44 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:34:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:44 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 10:34:44 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:34:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:45 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:34:45 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:34:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:45 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.43秒 +2026-01-09 10:34:45 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:34:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:45 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:34:45 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:34:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:45 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:34:45 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:34:46 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:46 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:34:46 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:34:46 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:46 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:34:46 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:34:46 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:46 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:34:46 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:34:46 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:46 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:34:46 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:34:46 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:34:46 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:34:46 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 193 条公告 +2026-01-09 10:34:46 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 193 -> 2 条公告 +2026-01-09 10:34:46 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 2 -> 2 条公告 +2026-01-09 10:34:46 - gx_gp_monitor.main - INFO - 筛选后剩余 2 条公告 +2026-01-09 10:34:46 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:34:46 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 2, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 191, 'date_filtered': 1107, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='关于打印/复印纸的网上超市合同公告', publish_date=datetime.datetime(2026, 1, 9, 9, 53, 47), purchase_name='马山县卫生健康局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=TQ8JBxuEbH10KU93ffGNUQ==', source_code='ZcyAnnouncement7', source_name='电子卖场公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 34, 45, 68742), created_at=None, updated_at=None, content_hash='406c71dd23410b265f2776eef85bddc7', keyword_matched=True, date_filtered=True, is_new=True, is_today=True), Announcement(id=None, title='马山县疾病预防控制中心[2181801000007961838]马山县龙之都汽车服务有限公司2025-2026年马山县县本级预算单位公务车辆维修、保养服务框架协议采购的验收公告', publish_date=datetime.datetime(2026, 1, 9, 9, 33, 27), purchase_name='马山县疾病预防控制中心', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=MiIzDm+fgMeYY8CH5dIPRA==', source_code='ZcyAnnouncement10', source_name='履约验收公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 34, 45, 497090), created_at=None, updated_at=None, content_hash='f22c9ba4ff8375192b93c24e1a2901df', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 10:35:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:09 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.51秒 +2026-01-09 10:35:09 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:35:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:09 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:35:09 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:35:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:09 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 10:35:09 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:35:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:09 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:35:09 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:35:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:10 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:35:10 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:35:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:10 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 10:35:10 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:35:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:10 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.42秒 +2026-01-09 10:35:10 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:35:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:10 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:35:10 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:35:11 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:11 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:35:11 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:35:11 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:11 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:35:11 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:35:11 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:11 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:35:11 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:35:11 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:11 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:35:11 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:35:11 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:11 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:35:11 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:35:11 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:35:11 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:35:11 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 194 条公告 +2026-01-09 10:35:11 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 194 -> 2 条公告 +2026-01-09 10:35:11 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 2 -> 2 条公告 +2026-01-09 10:35:11 - gx_gp_monitor.main - INFO - 筛选后剩余 2 条公告 +2026-01-09 10:35:11 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:35:11 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 2, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 192, 'date_filtered': 1106, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='关于打印/复印纸的网上超市合同公告', publish_date=datetime.datetime(2026, 1, 9, 9, 53, 47), purchase_name='马山县卫生健康局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=TQ8JBxuEbH10KU93ffGNUQ==', source_code='ZcyAnnouncement7', source_name='电子卖场公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 35, 10, 254547), created_at=None, updated_at=None, content_hash='406c71dd23410b265f2776eef85bddc7', keyword_matched=True, date_filtered=True, is_new=True, is_today=True), Announcement(id=None, title='马山县疾病预防控制中心[2181801000007961838]马山县龙之都汽车服务有限公司2025-2026年马山县县本级预算单位公务车辆维修、保养服务框架协议采购的验收公告', publish_date=datetime.datetime(2026, 1, 9, 9, 33, 27), purchase_name='马山县疾病预防控制中心', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=MiIzDm+fgMeYY8CH5dIPRA==', source_code='ZcyAnnouncement10', source_name='履约验收公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 35, 10, 669761), created_at=None, updated_at=None, content_hash='f22c9ba4ff8375192b93c24e1a2901df', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 10:36:32 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:36:32 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: NNqNKwBKU8YP87SfjRv8oENckQkQFS70OmhGuzkGFrsC1YwEBQ... +2026-01-09 10:36:32 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 45f5c588689dc7ae542ab1553699861c4711dc8a +2026-01-09 10:36:32 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 45f5c588689dc7ae542ab1553699861c4711dc8a +2026-01-09 10:36:32 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:36:32 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:36:32 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:36:32 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=搜索 大化..., user=WeiJueSen +2026-01-09 10:36:32 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 搜索 大化, user: WeiJueSen +2026-01-09 10:36:32 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 手动搜索关键词: ['大化'] +2026-01-09 10:36:32 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:36:32 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:36:32 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:36:37 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:36:37 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: NNqNKwBKU8YP87SfjRv8oENckQkQFS70OmhGuzkGFrsC1YwEBQ... +2026-01-09 10:36:37 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 45f5c588689dc7ae542ab1553699861c4711dc8a +2026-01-09 10:36:37 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 45f5c588689dc7ae542ab1553699861c4711dc8a +2026-01-09 10:36:37 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:36:37 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:36:37 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:36:37 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=搜索 大化..., user=WeiJueSen +2026-01-09 10:36:37 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 搜索 大化, user: WeiJueSen +2026-01-09 10:36:37 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 手动搜索关键词: ['大化'] +2026-01-09 10:36:37 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:36:37 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:36:37 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:36:42 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:36:42 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: NNqNKwBKU8YP87SfjRv8oENckQkQFS70OmhGuzkGFrsC1YwEBQ... +2026-01-09 10:36:42 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 45f5c588689dc7ae542ab1553699861c4711dc8a +2026-01-09 10:36:42 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 45f5c588689dc7ae542ab1553699861c4711dc8a +2026-01-09 10:36:42 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:36:42 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:36:42 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:36:42 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=搜索 大化..., user=WeiJueSen +2026-01-09 10:36:42 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 搜索 大化, user: WeiJueSen +2026-01-09 10:36:42 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 手动搜索关键词: ['大化'] +2026-01-09 10:36:42 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:36:42 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:36:42 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:37:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:08 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.39秒 +2026-01-09 10:37:08 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:37:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:08 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 10:37:08 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:37:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:08 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:37:08 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:37:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:08 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:37:08 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:37:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:09 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 10:37:09 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:37:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:09 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:37:09 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:37:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:09 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.39秒 +2026-01-09 10:37:09 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:37:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:09 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:37:09 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:37:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:10 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:37:10 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:37:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:10 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:37:10 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:37:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:10 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:37:10 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:37:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:10 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.26秒 +2026-01-09 10:37:10 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:37:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:10 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:37:10 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:37:10 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:37:10 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:37:10 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 199 条公告 +2026-01-09 10:37:10 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 199 -> 1 条公告 +2026-01-09 10:37:10 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1 -> 1 条公告 +2026-01-09 10:37:10 - gx_gp_monitor.main - INFO - 筛选后剩余 1 条公告 +2026-01-09 10:37:10 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:37:10 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 1, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 198, 'date_filtered': 1101, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='大化瑶族自治县2025年度国土变更(日常变更)调查项目合同公告', publish_date=datetime.datetime(2026, 1, 9, 10, 2, 19), purchase_name='大化瑶族自治县自然资源局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=NSAtgiyTEYUaFq3dcNs6ig==', source_code='ZcyAnnouncement3', source_name='合同公告', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 37, 8, 446065), created_at=None, updated_at=None, content_hash='9270849ec53ce195b3fc4de103ef656a', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 10:37:13 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:13 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.38秒 +2026-01-09 10:37:13 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:37:13 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:13 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.26秒 +2026-01-09 10:37:13 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:37:13 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:13 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:37:13 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:37:13 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:13 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:37:13 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:37:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:14 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:37:14 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:37:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:14 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:37:14 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:37:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:14 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.36秒 +2026-01-09 10:37:14 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:37:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:14 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:37:14 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:37:15 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:15 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.26秒 +2026-01-09 10:37:15 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:37:15 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:15 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:37:15 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:37:15 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:15 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.34秒 +2026-01-09 10:37:15 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:37:15 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:15 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.29秒 +2026-01-09 10:37:15 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:37:16 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:16 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.29秒 +2026-01-09 10:37:16 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:37:16 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:37:16 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:37:16 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 199 条公告 +2026-01-09 10:37:16 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 199 -> 1 条公告 +2026-01-09 10:37:16 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1 -> 1 条公告 +2026-01-09 10:37:16 - gx_gp_monitor.main - INFO - 筛选后剩余 1 条公告 +2026-01-09 10:37:16 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:37:16 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 1, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 198, 'date_filtered': 1101, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='大化瑶族自治县2025年度国土变更(日常变更)调查项目合同公告', publish_date=datetime.datetime(2026, 1, 9, 10, 2, 19), purchase_name='大化瑶族自治县自然资源局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=NSAtgiyTEYUaFq3dcNs6ig==', source_code='ZcyAnnouncement3', source_name='合同公告', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 37, 13, 480617), created_at=None, updated_at=None, content_hash='9270849ec53ce195b3fc4de103ef656a', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 10:37:32 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:37:32 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: Lkx65MFWghgpCIU1tWydWqtX7DDrez3S6jBM64NmE/dhfhBQMy... +2026-01-09 10:37:32 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 047168e9e8d4e60f631ac6f98d07d8380df9c2b8 +2026-01-09 10:37:32 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 047168e9e8d4e60f631ac6f98d07d8380df9c2b8 +2026-01-09 10:37:32 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:37:32 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:37:32 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:37:32 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=搜索 马山..., user=WeiJueSen +2026-01-09 10:37:32 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 搜索 马山, user: WeiJueSen +2026-01-09 10:37:32 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 手动搜索关键词: ['马山'] +2026-01-09 10:37:32 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 10:37:32 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 10:37:32 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 10:37:32 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:37:32 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:37:32 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:37:32 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:37:32 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:37:32 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 10:37:32 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:37:32 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:37:32 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:37:37 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:37:37 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: Lkx65MFWghgpCIU1tWydWqtX7DDrez3S6jBM64NmE/dhfhBQMy... +2026-01-09 10:37:37 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 047168e9e8d4e60f631ac6f98d07d8380df9c2b8 +2026-01-09 10:37:37 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 047168e9e8d4e60f631ac6f98d07d8380df9c2b8 +2026-01-09 10:37:37 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:37:37 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:37:37 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:37:37 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=搜索 马山..., user=WeiJueSen +2026-01-09 10:37:37 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 搜索 马山, user: WeiJueSen +2026-01-09 10:37:37 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 手动搜索关键词: ['马山'] +2026-01-09 10:37:37 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:37:37 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:37:37 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:37:42 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:37:42 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: Lkx65MFWghgpCIU1tWydWqtX7DDrez3S6jBM64NmE/dhfhBQMy... +2026-01-09 10:37:42 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 047168e9e8d4e60f631ac6f98d07d8380df9c2b8 +2026-01-09 10:37:42 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 047168e9e8d4e60f631ac6f98d07d8380df9c2b8 +2026-01-09 10:37:42 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:37:42 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:37:42 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:37:42 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=搜索 马山..., user=WeiJueSen +2026-01-09 10:37:42 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 搜索 马山, user: WeiJueSen +2026-01-09 10:37:42 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 手动搜索关键词: ['马山'] +2026-01-09 10:37:42 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:37:42 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:37:42 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:37:42 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:42 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 0.44秒 +2026-01-09 10:37:42 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:37:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:43 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.37秒 +2026-01-09 10:37:43 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:37:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:43 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 10:37:43 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:37:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:43 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:37:43 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:37:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:43 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:37:43 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:37:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:43 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:37:43 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:37:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:44 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.34秒 +2026-01-09 10:37:44 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:37:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:44 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:37:44 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:37:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:44 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:37:44 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:37:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:44 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:37:44 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:37:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:44 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:37:44 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:37:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:45 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:37:45 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:37:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:45 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:37:45 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:37:45 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:37:45 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:37:45 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 200 条公告 +2026-01-09 10:37:45 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 200 -> 2 条公告 +2026-01-09 10:37:45 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 2 -> 2 条公告 +2026-01-09 10:37:45 - gx_gp_monitor.main - INFO - 筛选后剩余 2 条公告 +2026-01-09 10:37:45 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:37:45 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 2, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 198, 'date_filtered': 1100, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='关于打印/复印纸的网上超市合同公告', publish_date=datetime.datetime(2026, 1, 9, 9, 53, 47), purchase_name='马山县卫生健康局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=TQ8JBxuEbH10KU93ffGNUQ==', source_code='ZcyAnnouncement7', source_name='电子卖场公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 37, 43, 886887), created_at=None, updated_at=None, content_hash='406c71dd23410b265f2776eef85bddc7', keyword_matched=True, date_filtered=True, is_new=True, is_today=True), Announcement(id=None, title='马山县疾病预防控制中心[2181801000007961838]马山县龙之都汽车服务有限公司2025-2026年马山县县本级预算单位公务车辆维修、保养服务框架协议采购的验收公告', publish_date=datetime.datetime(2026, 1, 9, 9, 33, 27), purchase_name='马山县疾病预防控制中心', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=MiIzDm+fgMeYY8CH5dIPRA==', source_code='ZcyAnnouncement10', source_name='履约验收公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 37, 44, 227222), created_at=None, updated_at=None, content_hash='f22c9ba4ff8375192b93c24e1a2901df', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 10:38:02 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:02 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.38秒 +2026-01-09 10:38:02 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:38:02 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:02 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:38:02 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:38:03 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:03 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:38:03 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:38:03 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:03 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.28秒 +2026-01-09 10:38:03 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:38:03 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:03 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:38:03 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:38:03 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:03 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:38:03 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:38:04 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:04 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.34秒 +2026-01-09 10:38:04 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:38:04 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:04 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:38:04 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:38:04 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:04 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.26秒 +2026-01-09 10:38:04 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:38:04 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:04 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.26秒 +2026-01-09 10:38:04 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:38:05 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:05 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:38:05 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:38:05 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:05 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:38:05 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:38:05 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:05 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:38:05 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:38:05 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:38:05 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:38:05 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 203 条公告 +2026-01-09 10:38:05 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 203 -> 2 条公告 +2026-01-09 10:38:05 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 2 -> 2 条公告 +2026-01-09 10:38:05 - gx_gp_monitor.main - INFO - 筛选后剩余 2 条公告 +2026-01-09 10:38:05 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:38:05 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 2, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 201, 'date_filtered': 1097, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='关于打印/复印纸的网上超市合同公告', publish_date=datetime.datetime(2026, 1, 9, 9, 53, 47), purchase_name='马山县卫生健康局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=TQ8JBxuEbH10KU93ffGNUQ==', source_code='ZcyAnnouncement7', source_name='电子卖场公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 38, 3, 903378), created_at=None, updated_at=None, content_hash='406c71dd23410b265f2776eef85bddc7', keyword_matched=True, date_filtered=True, is_new=True, is_today=True), Announcement(id=None, title='马山县疾病预防控制中心[2181801000007961838]马山县龙之都汽车服务有限公司2025-2026年马山县县本级预算单位公务车辆维修、保养服务框架协议采购的验收公告', publish_date=datetime.datetime(2026, 1, 9, 9, 33, 27), purchase_name='马山县疾病预防控制中心', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=MiIzDm+fgMeYY8CH5dIPRA==', source_code='ZcyAnnouncement10', source_name='履约验收公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 38, 4, 239840), created_at=None, updated_at=None, content_hash='f22c9ba4ff8375192b93c24e1a2901df', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 10:38:07 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:07 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.38秒 +2026-01-09 10:38:07 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:38:07 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:07 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:38:07 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:38:07 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:07 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:38:07 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:38:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:08 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:38:08 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:38:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:08 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:38:08 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:38:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:08 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:38:08 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:38:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:08 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.34秒 +2026-01-09 10:38:08 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:38:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:09 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:38:09 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:38:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:09 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:38:09 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:38:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:09 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:38:09 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:38:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:09 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:38:09 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:38:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:09 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:38:09 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:38:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:10 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:38:10 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:38:10 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:38:10 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:38:10 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 203 条公告 +2026-01-09 10:38:10 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 203 -> 2 条公告 +2026-01-09 10:38:10 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 2 -> 2 条公告 +2026-01-09 10:38:10 - gx_gp_monitor.main - INFO - 筛选后剩余 2 条公告 +2026-01-09 10:38:10 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:38:10 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 2, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 201, 'date_filtered': 1097, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='关于打印/复印纸的网上超市合同公告', publish_date=datetime.datetime(2026, 1, 9, 9, 53, 47), purchase_name='马山县卫生健康局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=TQ8JBxuEbH10KU93ffGNUQ==', source_code='ZcyAnnouncement7', source_name='电子卖场公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 38, 8, 573750), created_at=None, updated_at=None, content_hash='406c71dd23410b265f2776eef85bddc7', keyword_matched=True, date_filtered=True, is_new=True, is_today=True), Announcement(id=None, title='马山县疾病预防控制中心[2181801000007961838]马山县龙之都汽车服务有限公司2025-2026年马山县县本级预算单位公务车辆维修、保养服务框架协议采购的验收公告', publish_date=datetime.datetime(2026, 1, 9, 9, 33, 27), purchase_name='马山县疾病预防控制中心', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=MiIzDm+fgMeYY8CH5dIPRA==', source_code='ZcyAnnouncement10', source_name='履约验收公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 38, 8, 911610), created_at=None, updated_at=None, content_hash='f22c9ba4ff8375192b93c24e1a2901df', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 10:42:45 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:42:45 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:42:57 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:42:57 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:43:05 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:43:05 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:43:27 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:43:27 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:43:35 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:43:35 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:43:38 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:43:38 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: test_user +2026-01-09 10:43:38 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 关键词搜索: ['大化'] +2026-01-09 10:43:38 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 10:43:38 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 10:43:38 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 10:43:38 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:43:38 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:43:38 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:43:38 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:43:38 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:43:38 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 10:43:38 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:43:38 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:43:38 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:44:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:09 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.46秒 +2026-01-09 10:44:09 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:44:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:09 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 10:44:09 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:44:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:09 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:44:09 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:44:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:09 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:44:09 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:44:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:10 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:44:10 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:44:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:10 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:44:10 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:44:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:10 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.38秒 +2026-01-09 10:44:10 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:44:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:10 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:44:10 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:44:11 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:11 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:44:11 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:44:11 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:11 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:44:11 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:44:11 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:11 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:44:11 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:44:11 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:11 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:44:11 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:44:11 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:11 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:44:11 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:44:11 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:44:11 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:44:11 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 207 条公告 +2026-01-09 10:44:11 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 207 -> 1 条公告 +2026-01-09 10:44:11 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1 -> 1 条公告 +2026-01-09 10:44:11 - gx_gp_monitor.main - INFO - 筛选后剩余 1 条公告 +2026-01-09 10:44:11 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:44:11 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 1, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 206, 'date_filtered': 1093, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='大化瑶族自治县2025年度国土变更(日常变更)调查项目合同公告', publish_date=datetime.datetime(2026, 1, 9, 10, 2, 19), purchase_name='大化瑶族自治县自然资源局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=NSAtgiyTEYUaFq3dcNs6ig==', source_code='ZcyAnnouncement3', source_name='合同公告', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 44, 9, 588007), created_at=None, updated_at=None, content_hash='9270849ec53ce195b3fc4de103ef656a', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 10:44:11 - gx_gp_monitor.wechat.message_handler - WARNING - 发送markdown通知失败: send_system_notification() got an unexpected keyword argument 'message_type' +2026-01-09 10:44:11 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: test_user +2026-01-09 10:44:11 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 关键词搜索: ['大化'] +2026-01-09 10:44:11 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:44:11 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:44:11 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:44:42 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:42 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.38秒 +2026-01-09 10:44:42 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:44:42 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:42 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.26秒 +2026-01-09 10:44:42 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:44:42 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:42 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.28秒 +2026-01-09 10:44:42 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:44:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:43 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:44:43 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:44:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:43 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:44:43 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:44:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:43 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:44:43 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:44:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:43 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.36秒 +2026-01-09 10:44:43 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:44:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:43 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:44:43 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:44:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:44 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:44:44 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:44:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:44 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:44:44 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:44:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:44 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.15秒 +2026-01-09 10:44:44 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:44:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:44 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:44:44 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:44:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:44:44 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:44:44 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:44:44 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:44:44 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:44:44 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 208 条公告 +2026-01-09 10:44:44 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 208 -> 1 条公告 +2026-01-09 10:44:44 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1 -> 1 条公告 +2026-01-09 10:44:44 - gx_gp_monitor.main - INFO - 筛选后剩余 1 条公告 +2026-01-09 10:44:44 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:44:44 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 1, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 207, 'date_filtered': 1092, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='大化瑶族自治县2025年度国土变更(日常变更)调查项目合同公告', publish_date=datetime.datetime(2026, 1, 9, 10, 2, 19), purchase_name='大化瑶族自治县自然资源局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=NSAtgiyTEYUaFq3dcNs6ig==', source_code='ZcyAnnouncement3', source_name='合同公告', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 44, 42, 525354), created_at=None, updated_at=None, content_hash='9270849ec53ce195b3fc4de103ef656a', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 10:44:44 - gx_gp_monitor.wechat.message_handler - WARNING - 发送markdown通知失败: send_system_notification() got an unexpected keyword argument 'message_type' +2026-01-09 10:45:17 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:45:17 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:45:20 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:45:20 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: test_user +2026-01-09 10:45:20 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 关键词搜索: ['大化'] +2026-01-09 10:45:20 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 10:45:20 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 10:45:20 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 10:45:20 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:45:20 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:45:20 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:45:20 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:45:20 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:45:20 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 10:45:20 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:45:20 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:45:20 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:45:50 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:45:50 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.40秒 +2026-01-09 10:45:50 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:45:50 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:45:50 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:45:50 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:45:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:45:51 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:45:51 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:45:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:45:51 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:45:51 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:45:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:45:51 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:45:51 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:45:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:45:51 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:45:51 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:45:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:45:52 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.43秒 +2026-01-09 10:45:52 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:45:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:45:52 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:45:52 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:45:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:45:52 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 10:45:52 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:45:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:45:52 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:45:52 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:45:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:45:52 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:45:52 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:45:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:45:53 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.15秒 +2026-01-09 10:45:53 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:45:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:45:53 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:45:53 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:45:53 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:45:53 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:45:53 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 211 条公告 +2026-01-09 10:45:53 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 211 -> 1 条公告 +2026-01-09 10:45:53 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1 -> 1 条公告 +2026-01-09 10:45:53 - gx_gp_monitor.main - INFO - 筛选后剩余 1 条公告 +2026-01-09 10:45:53 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:45:53 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 1, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 210, 'date_filtered': 1089, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='大化瑶族自治县2025年度国土变更(日常变更)调查项目合同公告', publish_date=datetime.datetime(2026, 1, 9, 10, 2, 19), purchase_name='大化瑶族自治县自然资源局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=NSAtgiyTEYUaFq3dcNs6ig==', source_code='ZcyAnnouncement3', source_name='合同公告', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 45, 50, 935170), created_at=None, updated_at=None, content_hash='9270849ec53ce195b3fc4de103ef656a', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 10:45:53 - gx_gp_monitor.notification.wechat - INFO - 企业微信服务初始化完成 +2026-01-09 10:45:53 - gx_gp_monitor.wechat.message_handler - WARNING - 发送markdown通知失败: NotificationManager.send_system_notification() got an unexpected keyword argument 'message_type' +2026-01-09 10:45:54 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: test_user +2026-01-09 10:45:54 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 关键词搜索: ['大化'] +2026-01-09 10:45:54 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:45:54 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:45:54 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:46:24 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:24 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.44秒 +2026-01-09 10:46:24 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:46:25 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:25 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.29秒 +2026-01-09 10:46:25 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:46:25 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:25 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:46:25 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:46:25 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:25 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:46:25 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:46:25 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:25 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:46:25 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:46:25 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:25 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:46:25 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:46:26 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:26 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.35秒 +2026-01-09 10:46:26 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:46:26 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:26 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:46:26 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:46:26 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:26 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:46:26 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:46:26 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:26 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:46:26 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:46:26 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:26 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.15秒 +2026-01-09 10:46:26 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:46:27 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:27 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:46:27 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:46:27 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:27 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:46:27 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:46:27 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:46:27 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:46:27 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 211 条公告 +2026-01-09 10:46:27 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 211 -> 1 条公告 +2026-01-09 10:46:27 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1 -> 1 条公告 +2026-01-09 10:46:27 - gx_gp_monitor.main - INFO - 筛选后剩余 1 条公告 +2026-01-09 10:46:27 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:46:27 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 1, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 210, 'date_filtered': 1089, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='大化瑶族自治县2025年度国土变更(日常变更)调查项目合同公告', publish_date=datetime.datetime(2026, 1, 9, 10, 2, 19), purchase_name='大化瑶族自治县自然资源局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=NSAtgiyTEYUaFq3dcNs6ig==', source_code='ZcyAnnouncement3', source_name='合同公告', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 46, 25, 54355), created_at=None, updated_at=None, content_hash='9270849ec53ce195b3fc4de103ef656a', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 10:46:27 - gx_gp_monitor.wechat.message_handler - WARNING - 发送markdown通知失败: NotificationManager.send_system_notification() got an unexpected keyword argument 'message_type' +2026-01-09 10:46:35 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:46:35 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:46:39 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:46:39 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:46:43 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:46:43 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: test_user +2026-01-09 10:46:43 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 关键词搜索: ['大化'] +2026-01-09 10:46:43 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 10:46:43 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 10:46:43 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 10:46:44 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:46:44 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:46:44 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:46:44 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:46:44 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:46:44 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 10:46:44 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:46:44 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:46:44 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:46:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:44 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 0.40秒 +2026-01-09 10:46:44 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:46:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:44 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:46:44 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:46:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:44 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:46:44 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:46:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:45 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:46:45 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:46:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:45 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:46:45 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:46:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:45 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.26秒 +2026-01-09 10:46:45 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:46:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:45 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.41秒 +2026-01-09 10:46:45 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:46:46 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:46 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:46:46 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:46:46 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:46 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:46:46 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:46:46 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:46 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 10:46:46 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:46:46 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:46 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.26秒 +2026-01-09 10:46:46 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:46:47 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:47 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:46:47 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:46:47 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:46:47 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:46:47 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:46:47 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:46:47 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:46:47 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 211 条公告 +2026-01-09 10:46:47 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 211 -> 1 条公告 +2026-01-09 10:46:47 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1 -> 1 条公告 +2026-01-09 10:46:47 - gx_gp_monitor.main - INFO - 筛选后剩余 1 条公告 +2026-01-09 10:46:47 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:46:47 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 1, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 210, 'date_filtered': 1089, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='大化瑶族自治县2025年度国土变更(日常变更)调查项目合同公告', publish_date=datetime.datetime(2026, 1, 9, 10, 2, 19), purchase_name='大化瑶族自治县自然资源局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=NSAtgiyTEYUaFq3dcNs6ig==', source_code='ZcyAnnouncement3', source_name='合同公告', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 46, 44, 669151), created_at=None, updated_at=None, content_hash='9270849ec53ce195b3fc4de103ef656a', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 10:46:47 - gx_gp_monitor.notification.wechat - INFO - 企业微信服务初始化完成 +2026-01-09 10:46:47 - gx_gp_monitor.notification.wechat - INFO - 成功获取企业微信访问令牌 +2026-01-09 10:46:47 - gx_gp_monitor.notification.wechat - INFO - Markdown消息发送成功 +2026-01-09 10:46:47 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: test_user +2026-01-09 10:46:47 - gx_gp_monitor.wechat.message_handler - INFO - 检测到重复请求: user=test_user, content=大化... +2026-01-09 10:46:58 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: test_user +2026-01-09 10:46:58 - gx_gp_monitor.wechat.message_handler - INFO - 用户 test_user 关键词搜索: ['大化'] +2026-01-09 10:46:58 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:46:58 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:46:58 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:47:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:47:29 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.37秒 +2026-01-09 10:47:29 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:47:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:47:29 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:47:29 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:47:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:47:29 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 10:47:29 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:47:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:47:29 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:47:29 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:47:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:47:29 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:47:29 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:47:30 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:47:30 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:47:30 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:47:30 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:47:30 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.37秒 +2026-01-09 10:47:30 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:47:30 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:47:30 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:47:30 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:47:30 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:47:30 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.29秒 +2026-01-09 10:47:30 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:47:31 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:47:31 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:47:31 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:47:31 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:47:31 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:47:31 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:47:31 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:47:31 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:47:31 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:47:31 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:47:31 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:47:31 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:47:31 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:47:31 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:47:31 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 212 条公告 +2026-01-09 10:47:31 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 212 -> 1 条公告 +2026-01-09 10:47:31 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1 -> 1 条公告 +2026-01-09 10:47:31 - gx_gp_monitor.main - INFO - 筛选后剩余 1 条公告 +2026-01-09 10:47:31 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:47:31 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 1, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 211, 'date_filtered': 1088, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='大化瑶族自治县2025年度国土变更(日常变更)调查项目合同公告', publish_date=datetime.datetime(2026, 1, 9, 10, 2, 19), purchase_name='大化瑶族自治县自然资源局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=NSAtgiyTEYUaFq3dcNs6ig==', source_code='ZcyAnnouncement3', source_name='合同公告', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 47, 29, 205862), created_at=None, updated_at=None, content_hash='9270849ec53ce195b3fc4de103ef656a', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 10:47:31 - gx_gp_monitor.notification.wechat - INFO - Markdown消息发送成功 +2026-01-09 10:47:37 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:47:37 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:47:47 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:47:47 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:48:00 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:48:00 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:50:09 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:50:09 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:50:13 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:50:13 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: V4PysTsq/lNT3/wFazWDLWyc0dGuq2JMkrVDkOzmHWSj2Ei3LR... +2026-01-09 10:50:13 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 03b9d5be793ca95eebdac7c887a610f60dfe77f2 +2026-01-09 10:50:13 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 03b9d5be793ca95eebdac7c887a610f60dfe77f2 +2026-01-09 10:50:13 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:50:13 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:50:13 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:50:13 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=大化..., user=WeiJueSen +2026-01-09 10:50:13 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: WeiJueSen +2026-01-09 10:50:13 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['大化'] +2026-01-09 10:50:13 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 10:50:13 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 10:50:13 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 10:50:13 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:50:13 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:50:13 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:50:13 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:50:13 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:50:13 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 10:50:13 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:50:13 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:50:13 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:50:13 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:13 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 0.45秒 +2026-01-09 10:50:13 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:50:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:14 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:50:14 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:50:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:14 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:50:14 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:50:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:14 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:50:14 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:50:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:14 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.15秒 +2026-01-09 10:50:14 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:50:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:14 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:50:14 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:50:15 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:15 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.42秒 +2026-01-09 10:50:15 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:50:15 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:15 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:50:15 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:50:15 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:15 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:50:15 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:50:15 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:15 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:50:15 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:50:16 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:16 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:50:16 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:50:16 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:16 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:50:16 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:50:16 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:16 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:50:16 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:50:16 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:50:16 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:50:16 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 217 条公告 +2026-01-09 10:50:16 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 217 -> 1 条公告 +2026-01-09 10:50:16 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1 -> 1 条公告 +2026-01-09 10:50:16 - gx_gp_monitor.main - INFO - 筛选后剩余 1 条公告 +2026-01-09 10:50:16 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:50:16 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 1, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 216, 'date_filtered': 1083, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='大化瑶族自治县2025年度国土变更(日常变更)调查项目合同公告', publish_date=datetime.datetime(2026, 1, 9, 10, 2, 19), purchase_name='大化瑶族自治县自然资源局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=NSAtgiyTEYUaFq3dcNs6ig==', source_code='ZcyAnnouncement3', source_name='合同公告', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 50, 14, 210634), created_at=None, updated_at=None, content_hash='9270849ec53ce195b3fc4de103ef656a', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 10:50:16 - gx_gp_monitor.notification.wechat - INFO - 企业微信服务初始化完成 +2026-01-09 10:50:16 - gx_gp_monitor.notification.wechat - INFO - 成功获取企业微信访问令牌 +2026-01-09 10:50:16 - gx_gp_monitor.notification.wechat - INFO - Markdown消息发送成功 +2026-01-09 10:50:38 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:50:38 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:52:42 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:52:42 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:52:56 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:52:56 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:53:20 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:53:20 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:53:46 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:53:46 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:54:03 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:54:03 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: Uo4QU84T+D2cpkopqB0HZAhYIxAzg7bxLwDzgVH/QDLap7sKHL... +2026-01-09 10:54:03 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: b100a5fed3e9702af41bd289efb1160218ea3759 +2026-01-09 10:54:03 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: b100a5fed3e9702af41bd289efb1160218ea3759 +2026-01-09 10:54:03 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:54:03 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:54:03 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:54:03 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=大化..., user=WeiJueSen +2026-01-09 10:54:03 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: WeiJueSen +2026-01-09 10:54:03 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['大化'] +2026-01-09 10:54:03 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 10:54:03 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 10:54:03 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 10:54:03 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:54:03 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:54:03 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:54:03 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:54:03 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:54:03 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 10:54:03 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:54:03 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:54:03 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:54:08 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:54:08 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: Uo4QU84T+D2cpkopqB0HZAhYIxAzg7bxLwDzgVH/QDLap7sKHL... +2026-01-09 10:54:08 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: b100a5fed3e9702af41bd289efb1160218ea3759 +2026-01-09 10:54:08 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: b100a5fed3e9702af41bd289efb1160218ea3759 +2026-01-09 10:54:08 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:54:08 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:54:08 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:54:08 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=大化..., user=WeiJueSen +2026-01-09 10:54:08 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: WeiJueSen +2026-01-09 10:54:08 - gx_gp_monitor.wechat.message_handler - INFO - 检测到重复请求: user=WeiJueSen, content=大化... +2026-01-09 10:54:34 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:34 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.40秒 +2026-01-09 10:54:34 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:54:34 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:34 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:54:34 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:54:34 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:34 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 10:54:34 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:54:34 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:34 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:54:34 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:54:35 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:35 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:54:35 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:54:35 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:35 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:54:35 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:54:35 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:35 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.44秒 +2026-01-09 10:54:35 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:54:35 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:35 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:54:35 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:54:36 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:36 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:54:36 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:54:36 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:36 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:54:36 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:54:36 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:36 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:54:36 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:54:36 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:36 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:54:36 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:54:36 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:36 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:54:36 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:54:36 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:54:36 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:54:36 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 220 条公告 +2026-01-09 10:54:36 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 220 -> 1 条公告 +2026-01-09 10:54:36 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1 -> 1 条公告 +2026-01-09 10:54:36 - gx_gp_monitor.main - INFO - 筛选后剩余 1 条公告 +2026-01-09 10:54:36 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:54:36 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 1, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 219, 'date_filtered': 1080, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='大化瑶族自治县2025年度国土变更(日常变更)调查项目合同公告', publish_date=datetime.datetime(2026, 1, 9, 10, 2, 19), purchase_name='大化瑶族自治县自然资源局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=NSAtgiyTEYUaFq3dcNs6ig==', source_code='ZcyAnnouncement3', source_name='合同公告', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 54, 34, 478758), created_at=None, updated_at=None, content_hash='9270849ec53ce195b3fc4de103ef656a', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 10:54:36 - gx_gp_monitor.notification.wechat - INFO - 企业微信服务初始化完成 +2026-01-09 10:54:37 - gx_gp_monitor.notification.wechat - INFO - 成功获取企业微信访问令牌 +2026-01-09 10:54:37 - gx_gp_monitor.notification.wechat - INFO - Markdown消息发送成功 +2026-01-09 10:55:16 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:55:16 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:55:34 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:55:34 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:56:20 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:56:20 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +2026-01-09 10:58:11 - __main__ - INFO - === 开始定时搜索任务 === +2026-01-09 10:58:11 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:58:11 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:58:11 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:58:11 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:58:11 - __main__ - INFO - 开始执行搜索... +2026-01-09 10:58:12 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:58:12 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:58:12 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:58:42 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:58:42 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.49秒 +2026-01-09 10:58:42 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:58:42 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:58:42 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:58:42 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:58:42 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:58:42 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:58:42 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:58:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:58:43 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:58:43 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:58:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:58:43 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.15秒 +2026-01-09 10:58:43 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:58:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:58:43 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.15秒 +2026-01-09 10:58:43 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:58:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:58:43 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.35秒 +2026-01-09 10:58:43 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:58:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:58:43 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:58:43 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:58:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:58:44 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:58:44 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:58:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:58:44 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:58:44 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:58:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:58:44 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:58:44 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:58:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:58:44 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:58:44 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:58:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:58:44 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:58:44 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:58:44 - __main__ - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:58:44 - gx_gp_monitor.storage.postgresql - INFO - 开始按来源保存 1300 条公告,每个来源最多保留 100 条 +2026-01-09 10:58:44 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 10:58:44 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement1 保存了 1 条公告 +2026-01-09 10:58:44 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 10:58:44 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement2 保存了 1 条公告 +2026-01-09 10:58:44 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 10:58:44 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement3 保存了 1 条公告 +2026-01-09 10:58:44 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 10:58:44 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement4 保存了 1 条公告 +2026-01-09 10:58:44 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 10:58:44 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement5 保存了 1 条公告 +2026-01-09 10:58:45 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 10:58:45 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement6 保存了 1 条公告 +2026-01-09 10:58:45 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 10:58:45 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement7 保存了 1 条公告 +2026-01-09 10:58:45 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 10:58:45 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement10 保存了 1 条公告 +2026-01-09 10:58:45 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 10:58:45 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement11 保存了 1 条公告 +2026-01-09 10:58:45 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 10:58:45 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement20 保存了 1 条公告 +2026-01-09 10:58:45 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 10:58:45 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement21 保存了 1 条公告 +2026-01-09 10:58:45 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 10:58:45 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement23 保存了 1 条公告 +2026-01-09 10:58:45 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 10:58:45 - gx_gp_monitor.storage.postgresql - INFO - 来源 61-266648 保存了 1 条公告 +2026-01-09 10:58:45 - gx_gp_monitor.storage.postgresql - INFO - 按来源保存完成,总计保存 13 条公告 +2026-01-09 10:58:45 - __main__ - INFO - 保存所有公告完成:共保存 13 条,按来源统计: {'ZcyAnnouncement1': 1, 'ZcyAnnouncement2': 1, 'ZcyAnnouncement3': 1, 'ZcyAnnouncement4': 1, 'ZcyAnnouncement5': 1, 'ZcyAnnouncement6': 1, 'ZcyAnnouncement7': 1, 'ZcyAnnouncement10': 1, 'ZcyAnnouncement11': 1, 'ZcyAnnouncement20': 1, 'ZcyAnnouncement21': 1, 'ZcyAnnouncement23': 1, '61-266648': 1} +2026-01-09 10:58:45 - __main__ - INFO - 筛选出 1300 条新公告 +2026-01-09 10:58:45 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1300 -> 1300 条公告 +2026-01-09 10:58:45 - gx_gp_monitor.filters.filters - INFO - 去重筛选: 移除了 1300 条重复公告 +2026-01-09 10:58:45 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 0 -> 0 条公告 +2026-01-09 10:58:45 - gx_gp_monitor.filters.filters - INFO - 筛选完成: 总数 1300 -> 筛选后 0 (关键词: 0, 日期: 0, 去重: 1300, 来源: 0) +2026-01-09 10:58:45 - __main__ - INFO - 关键词筛选后剩余 0 条公告 +2026-01-09 10:58:45 - __main__ - INFO - 没有匹配关键词的公告,任务完成 +2026-01-09 11:02:06 - __main__ - INFO - === 开始定时搜索任务 === +2026-01-09 11:02:06 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 11:02:06 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 11:02:06 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 11:02:06 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 11:02:06 - __main__ - INFO - 开始执行搜索... +2026-01-09 11:02:06 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 11:02:06 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 11:02:06 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 11:02:37 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:37 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.50秒 +2026-01-09 11:02:37 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 11:02:37 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:37 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 11:02:37 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 11:02:37 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:37 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 11:02:37 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 11:02:37 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:37 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 11:02:37 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 11:02:38 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:38 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 11:02:38 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 11:02:38 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:38 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 11:02:38 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 11:02:38 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:38 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.34秒 +2026-01-09 11:02:38 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 11:02:38 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:38 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 11:02:38 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 11:02:39 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:39 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 11:02:39 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 11:02:39 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:39 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 11:02:39 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 11:02:39 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:39 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 11:02:39 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 11:02:39 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:39 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 11:02:39 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 11:02:39 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:39 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 11:02:39 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 11:02:39 - __main__ - INFO - 搜索到 1300 条原始公告 +2026-01-09 11:02:39 - gx_gp_monitor.storage.postgresql - INFO - 开始按来源保存 1300 条公告,每个来源最多保留 100 条 +2026-01-09 11:02:39 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 11:02:39 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement1 保存了 1 条公告 +2026-01-09 11:02:39 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 11:02:39 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement2 保存了 1 条公告 +2026-01-09 11:02:39 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 11:02:40 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement3 保存了 1 条公告 +2026-01-09 11:02:40 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 11:02:40 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement4 保存了 1 条公告 +2026-01-09 11:02:40 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 11:02:40 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement5 保存了 1 条公告 +2026-01-09 11:02:40 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 11:02:40 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement6 保存了 1 条公告 +2026-01-09 11:02:40 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 11:02:40 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement7 保存了 1 条公告 +2026-01-09 11:02:40 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 11:02:40 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement10 保存了 1 条公告 +2026-01-09 11:02:40 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 11:02:40 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement11 保存了 1 条公告 +2026-01-09 11:02:40 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 11:02:40 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement20 保存了 1 条公告 +2026-01-09 11:02:40 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 11:02:40 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement21 保存了 1 条公告 +2026-01-09 11:02:40 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 11:02:40 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement23 保存了 1 条公告 +2026-01-09 11:02:40 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条 +2026-01-09 11:02:40 - gx_gp_monitor.storage.postgresql - INFO - 来源 61-266648 保存了 1 条公告 +2026-01-09 11:02:40 - gx_gp_monitor.storage.postgresql - INFO - 按来源保存完成,总计保存 13 条公告 +2026-01-09 11:02:40 - __main__ - INFO - 保存所有公告完成:共保存 13 条,按来源统计: {'ZcyAnnouncement1': 1, 'ZcyAnnouncement2': 1, 'ZcyAnnouncement3': 1, 'ZcyAnnouncement4': 1, 'ZcyAnnouncement5': 1, 'ZcyAnnouncement6': 1, 'ZcyAnnouncement7': 1, 'ZcyAnnouncement10': 1, 'ZcyAnnouncement11': 1, 'ZcyAnnouncement20': 1, 'ZcyAnnouncement21': 1, 'ZcyAnnouncement23': 1, '61-266648': 1} +2026-01-09 11:02:40 - __main__ - INFO - 筛选出 1300 条新公告 +2026-01-09 11:02:40 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1300 -> 1300 条公告 +2026-01-09 11:02:40 - gx_gp_monitor.filters.filters - INFO - 去重筛选: 移除了 1300 条重复公告 +2026-01-09 11:02:40 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 0 -> 0 条公告 +2026-01-09 11:02:40 - gx_gp_monitor.filters.filters - INFO - 筛选完成: 总数 1300 -> 筛选后 0 (关键词: 0, 日期: 0, 去重: 1300, 来源: 0) +2026-01-09 11:02:40 - __main__ - INFO - 关键词筛选后剩余 0 条公告 +2026-01-09 11:02:40 - __main__ - INFO - 没有匹配关键词的公告,任务完成 +2026-01-09 11:02:44 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 11:02:44 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: vfWd53Wgci4LR2cr4AKLqHvpLtiIs8tYOmScdA5SJMkB8UFC+5... +2026-01-09 11:02:44 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: ff509b0226f285b5409b13fed5a910e818fb4ac0 +2026-01-09 11:02:44 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: ff509b0226f285b5409b13fed5a910e818fb4ac0 +2026-01-09 11:02:44 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 11:02:44 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 11:02:44 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 11:02:44 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=大化..., user=WeiJueSen +2026-01-09 11:02:44 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: WeiJueSen +2026-01-09 11:02:44 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['大化'] +2026-01-09 11:02:44 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 11:02:44 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 11:02:44 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 11:02:44 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 11:02:44 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 11:02:44 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 11:02:44 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 11:02:44 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 11:02:44 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 11:02:44 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 11:02:44 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 11:02:44 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 11:02:49 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 11:02:49 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: vfWd53Wgci4LR2cr4AKLqHvpLtiIs8tYOmScdA5SJMkB8UFC+5... +2026-01-09 11:02:49 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: ff509b0226f285b5409b13fed5a910e818fb4ac0 +2026-01-09 11:02:49 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: ff509b0226f285b5409b13fed5a910e818fb4ac0 +2026-01-09 11:02:49 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 11:02:49 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 11:02:49 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 11:02:49 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=大化..., user=WeiJueSen +2026-01-09 11:02:49 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: WeiJueSen +2026-01-09 11:02:49 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['大化'] +2026-01-09 11:02:49 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 11:02:49 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 11:02:49 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 11:02:49 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 11:02:49 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 11:02:49 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 11:02:49 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 11:02:49 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 11:02:49 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 11:02:49 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 11:02:49 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 11:02:49 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 11:02:50 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:50 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 0.36秒 +2026-01-09 11:02:50 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 11:02:50 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:50 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 11:02:50 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 11:02:50 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:50 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 11:02:50 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 11:02:50 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:50 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 11:02:50 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 11:02:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:51 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 11:02:51 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 11:02:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:51 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 11:02:51 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 11:02:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:51 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.34秒 +2026-01-09 11:02:51 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 11:02:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:51 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 11:02:51 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 11:02:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:52 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 11:02:52 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 11:02:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:52 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 11:02:52 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 11:02:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:52 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 11:02:52 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 11:02:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:52 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 11:02:52 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 11:02:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:52 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 11:02:52 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 11:02:52 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 11:02:52 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 11:02:52 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 237 条公告 +2026-01-09 11:02:52 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 237 -> 1 条公告 +2026-01-09 11:02:52 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1 -> 1 条公告 +2026-01-09 11:02:52 - gx_gp_monitor.main - INFO - 筛选后剩余 1 条公告 +2026-01-09 11:02:52 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 11:02:52 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 1, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 236, 'date_filtered': 1063, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='大化瑶族自治县2025年度国土变更(日常变更)调查项目合同公告', publish_date=datetime.datetime(2026, 1, 9, 10, 2, 19), purchase_name='大化瑶族自治县自然资源局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=NSAtgiyTEYUaFq3dcNs6ig==', source_code='ZcyAnnouncement3', source_name='合同公告', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 11, 2, 50, 521373), created_at=None, updated_at=None, content_hash='9270849ec53ce195b3fc4de103ef656a', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 11:02:52 - gx_gp_monitor.notification.wechat - INFO - 企业微信服务初始化完成 +2026-01-09 11:02:53 - gx_gp_monitor.notification.wechat - INFO - 成功获取企业微信访问令牌 +2026-01-09 11:02:53 - gx_gp_monitor.notification.wechat - INFO - Markdown消息发送成功 diff --git a/logs/uwsgi-wechat.log b/logs/uwsgi-wechat.log index 1a276e6..20c7908 100644 --- a/logs/uwsgi-wechat.log +++ b/logs/uwsgi-wechat.log @@ -1232,3 +1232,4478 @@ Thu Jan 8 23:52:07 2026 - Python auto-reloader enabled 2026-01-09 08:10:03 - gx_gp_monitor.notification.wechat - INFO - 企业微信服务初始化完成 2026-01-09 08:10:03 - gx_gp_monitor.notification.wechat - INFO - 成功获取企业微信访问令牌 {address space usage: 242388992 bytes/231MB} {rss usage: 60600320 bytes/57MB} [pid: 1616322|app: 0|req: 6/8] 183.47.98.168 () {36 vars in 678 bytes} [Fri Jan 9 08:10:03 2026] POST /api/v1/wechat/callback?msg_signature=c70c8e0f75d9e1e8673a812ba65eecc0fffefac0×tamp=1767917402&nonce=1768910559 => generated 1138 bytes in 330 msecs (HTTP/1.1 200) 2 headers in 81 bytes (1 switches on core 0) +2026-01-09 08:24:28 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 08:24:28 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: xWHwlcwe4cuIn2AK6nBzQ9q5zV0+ugoj8SRfP7xMMSCVEgHK2c... +2026-01-09 08:24:28 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: fe4d3cd3694a6e377ca8a65dba40280dc9567e06 +2026-01-09 08:24:28 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: fe4d3cd3694a6e377ca8a65dba40280dc9567e06 +2026-01-09 08:24:28 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 08:24:28 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 08:24:28 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 08:24:28 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=system_status, user=WeiJueSen +2026-01-09 08:24:28 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: system_status, user: WeiJueSen +2026-01-09 08:24:28 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求系统状态 +2026-01-09 08:24:28 - gx_gp_monitor.notification.wechat - INFO - 企业微信服务初始化完成 +2026-01-09 08:24:28 - gx_gp_monitor.notification.wechat - INFO - 成功获取企业微信访问令牌 +{address space usage: 242388992 bytes/231MB} {rss usage: 60600320 bytes/57MB} [pid: 1616322|app: 0|req: 7/9] 183.47.117.101 () {36 vars in 679 bytes} [Fri Jan 9 08:24:28 2026] POST /api/v1/wechat/callback?msg_signature=fe4d3cd3694a6e377ca8a65dba40280dc9567e06×tamp=1767918267&nonce=1768912568 => generated 1138 bytes in 257 msecs (HTTP/1.1 200) 2 headers in 81 bytes (1 switches on core 1) +2026-01-09 08:25:01 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 08:25:01 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: hqqxYVpVNxT1Qj5jt+eIUo3YItaTa0mdudcHd/kc2ov6qd7tVB... +2026-01-09 08:25:01 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 0a03ded284404f7444d641fd5d85f6b692f76d42 +2026-01-09 08:25:01 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 0a03ded284404f7444d641fd5d85f6b692f76d42 +2026-01-09 08:25:01 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 08:25:01 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 08:25:01 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 08:25:01 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=clear_cache, user=WeiJueSen +2026-01-09 08:25:01 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: clear_cache, user: WeiJueSen +2026-01-09 08:25:01 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求清理缓存 +2026-01-09 08:25:01 - gx_gp_monitor.wechat.message_handler - WARNING - 数据库缓存清理失败: cannot import name 'clear_database_cache' from 'gx_gp_monitor.storage.postgresql' (/home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/storage/postgresql.py) +{address space usage: 242388992 bytes/231MB} {rss usage: 60600320 bytes/57MB} [pid: 1616322|app: 0|req: 8/10] 14.116.241.251 () {36 vars in 679 bytes} [Fri Jan 9 08:25:01 2026] POST /api/v1/wechat/callback?msg_signature=0a03ded284404f7444d641fd5d85f6b692f76d42×tamp=1767918301&nonce=1768654455 => generated 966 bytes in 1 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 0) +Fri Jan 9 08:25:34 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 08:25:34 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 08:25:34 2026 - gateway "uWSGI http 1" has been buried (pid: 1616325) +Fri Jan 9 08:25:34 2026 - ...gracefully killing workers... +Fri Jan 9 08:25:34 2026 - Gracefully killing worker 1 (pid: 1616321)... +Fri Jan 9 08:25:34 2026 - Gracefully killing worker 2 (pid: 1616322)... +Fri Jan 9 08:25:35 2026 - worker 1 buried after 1 seconds +Fri Jan 9 08:25:35 2026 - worker 2 buried after 1 seconds +Fri Jan 9 08:25:35 2026 - binary reloading uWSGI... +Fri Jan 9 08:25:35 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:25:35 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 08:25:35 2026 - found fd 3 mapped to socket 0 (127.0.0.1:38137) +Fri Jan 9 08:25:35 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 08:25:35 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 08:25:35 2026] *** +Fri Jan 9 08:25:35 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 08:25:35 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 08:25:35 2026 - nodename: ubserver +Fri Jan 9 08:25:35 2026 - machine: x86_64 +Fri Jan 9 08:25:35 2026 - clock source: unix +Fri Jan 9 08:25:35 2026 - pcre jit disabled +Fri Jan 9 08:25:35 2026 - detected number of CPU cores: 12 +Fri Jan 9 08:25:35 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:25:35 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 08:25:35 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:25:35 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:25:35 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:25:35 2026 - your processes number limit is 61306 +Fri Jan 9 08:25:35 2026 - your memory page size is 4096 bytes +Fri Jan 9 08:25:35 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 08:25:35 2026 - detected max file descriptor number: 1024 +Fri Jan 9 08:25:35 2026 - lock engine: pthread robust mutexes +Fri Jan 9 08:25:35 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 08:25:35 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 08:25:35 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:43151 (port auto-assigned) fd 4 +Fri Jan 9 08:25:35 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:25:35 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:25:35 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 08:25:35 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:25:35 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:25:35 2026 - Python main interpreter initialized at 0x791842f52d10 +Fri Jan 9 08:25:35 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:25:35 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:25:35 2026 - python threads support enabled +Fri Jan 9 08:25:35 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 08:25:35 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 08:25:35 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 08:25:35 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 08:25:36 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:25:36 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 08:25:36 2026 - WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x791842f52d10 pid: 1616302 (default app) +Fri Jan 9 08:25:36 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:25:36 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:25:36 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 08:25:36 2026 - gracefully (RE)spawned uWSGI master process (pid: 1616302) +Fri Jan 9 08:25:36 2026 - spawned uWSGI worker 1 (pid: 1776212, cores: 2) +Fri Jan 9 08:25:36 2026 - spawned uWSGI worker 2 (pid: 1776213, cores: 2) +Fri Jan 9 08:25:36 2026 - spawned uWSGI http 1 (pid: 1776217) +Fri Jan 9 08:25:36 2026 - Python auto-reloader enabled +Fri Jan 9 08:25:49 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 08:25:49 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 08:25:49 2026 - gateway "uWSGI http 1" has been buried (pid: 1776217) +Fri Jan 9 08:25:49 2026 - ...gracefully killing workers... +Fri Jan 9 08:25:49 2026 - Gracefully killing worker 1 (pid: 1776212)... +Fri Jan 9 08:25:49 2026 - Gracefully killing worker 2 (pid: 1776213)... +Fri Jan 9 08:25:50 2026 - worker 1 buried after 1 seconds +Fri Jan 9 08:25:50 2026 - worker 2 buried after 1 seconds +Fri Jan 9 08:25:50 2026 - binary reloading uWSGI... +Fri Jan 9 08:25:50 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:25:50 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 08:25:50 2026 - found fd 4 mapped to socket 0 (127.0.0.1:43151) +Fri Jan 9 08:25:50 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 08:25:50 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 08:25:50 2026] *** +Fri Jan 9 08:25:50 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 08:25:50 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 08:25:50 2026 - nodename: ubserver +Fri Jan 9 08:25:50 2026 - machine: x86_64 +Fri Jan 9 08:25:50 2026 - clock source: unix +Fri Jan 9 08:25:50 2026 - pcre jit disabled +Fri Jan 9 08:25:50 2026 - detected number of CPU cores: 12 +Fri Jan 9 08:25:50 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:25:50 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 08:25:50 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:25:50 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:25:50 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:25:50 2026 - your processes number limit is 61306 +Fri Jan 9 08:25:50 2026 - your memory page size is 4096 bytes +Fri Jan 9 08:25:50 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 08:25:50 2026 - detected max file descriptor number: 1024 +Fri Jan 9 08:25:50 2026 - lock engine: pthread robust mutexes +Fri Jan 9 08:25:50 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 08:25:50 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 08:25:50 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:43709 (port auto-assigned) fd 3 +Fri Jan 9 08:25:50 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:25:50 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:25:50 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 08:25:50 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:25:50 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:25:50 2026 - Python main interpreter initialized at 0x7dc283d52d10 +Fri Jan 9 08:25:50 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:25:50 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:25:50 2026 - python threads support enabled +Fri Jan 9 08:25:50 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 08:25:50 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 08:25:50 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 08:25:50 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 08:25:50 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:25:50 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 08:25:50 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7dc283d52d10 pid: 1616302 (default app) +Fri Jan 9 08:25:50 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:25:50 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:25:50 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 08:25:50 2026 - gracefully (RE)spawned uWSGI master process (pid: 1616302) +Fri Jan 9 08:25:50 2026 - spawned uWSGI worker 1 (pid: 1776419, cores: 2) +Fri Jan 9 08:25:50 2026 - spawned uWSGI worker 2 (pid: 1776422, cores: 2) +Fri Jan 9 08:25:50 2026 - Python auto-reloader enabled +Fri Jan 9 08:25:50 2026 - spawned uWSGI http 1 (pid: 1776425) +Fri Jan 9 08:25:59 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 08:25:59 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 08:25:59 2026 - gateway "uWSGI http 1" has been buried (pid: 1776425) +Fri Jan 9 08:25:59 2026 - ...gracefully killing workers... +Fri Jan 9 08:25:59 2026 - Gracefully killing worker 2 (pid: 1776422)... +Fri Jan 9 08:25:59 2026 - Gracefully killing worker 1 (pid: 1776419)... +Fri Jan 9 08:26:00 2026 - worker 1 buried after 1 seconds +Fri Jan 9 08:26:00 2026 - worker 2 buried after 1 seconds +Fri Jan 9 08:26:00 2026 - binary reloading uWSGI... +Fri Jan 9 08:26:00 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:26:00 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 08:26:00 2026 - found fd 3 mapped to socket 0 (127.0.0.1:43709) +Fri Jan 9 08:26:00 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 08:26:00 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 08:26:00 2026] *** +Fri Jan 9 08:26:00 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 08:26:00 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 08:26:00 2026 - nodename: ubserver +Fri Jan 9 08:26:00 2026 - machine: x86_64 +Fri Jan 9 08:26:00 2026 - clock source: unix +Fri Jan 9 08:26:00 2026 - pcre jit disabled +Fri Jan 9 08:26:00 2026 - detected number of CPU cores: 12 +Fri Jan 9 08:26:00 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:26:00 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 08:26:00 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:26:00 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:26:00 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:26:00 2026 - your processes number limit is 61306 +Fri Jan 9 08:26:00 2026 - your memory page size is 4096 bytes +Fri Jan 9 08:26:00 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 08:26:00 2026 - detected max file descriptor number: 1024 +Fri Jan 9 08:26:00 2026 - lock engine: pthread robust mutexes +Fri Jan 9 08:26:00 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 08:26:00 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 08:26:00 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:41863 (port auto-assigned) fd 4 +Fri Jan 9 08:26:00 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:26:00 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:26:00 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 08:26:00 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:26:00 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:26:00 2026 - Python main interpreter initialized at 0x70a3e9552d10 +Fri Jan 9 08:26:00 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:26:00 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:26:00 2026 - python threads support enabled +Fri Jan 9 08:26:00 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 08:26:00 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 08:26:00 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 08:26:00 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 08:26:00 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:26:00 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 08:26:00 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x70a3e9552d10 pid: 1616302 (default app) +Fri Jan 9 08:26:00 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:26:00 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:26:00 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 08:26:00 2026 - gracefully (RE)spawned uWSGI master process (pid: 1616302) +Fri Jan 9 08:26:00 2026 - spawned uWSGI worker 1 (pid: 1776493, cores: 2) +Fri Jan 9 08:26:00 2026 - spawned uWSGI worker 2 (pid: 1776494, cores: 2) +Fri Jan 9 08:26:00 2026 - spawned uWSGI http 1 (pid: 1776497) +Fri Jan 9 08:26:00 2026 - Python auto-reloader enabled +Fri Jan 9 08:26:19 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 08:26:19 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 08:26:19 2026 - gateway "uWSGI http 1" has been buried (pid: 1776497) +Fri Jan 9 08:26:19 2026 - ...gracefully killing workers... +Fri Jan 9 08:26:19 2026 - Gracefully killing worker 1 (pid: 1776493)... +Fri Jan 9 08:26:19 2026 - Gracefully killing worker 2 (pid: 1776494)... +Fri Jan 9 08:26:20 2026 - worker 1 buried after 1 seconds +Fri Jan 9 08:26:20 2026 - worker 2 buried after 1 seconds +Fri Jan 9 08:26:20 2026 - binary reloading uWSGI... +Fri Jan 9 08:26:20 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:26:20 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 08:26:20 2026 - found fd 4 mapped to socket 0 (127.0.0.1:41863) +Fri Jan 9 08:26:20 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 08:26:20 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 08:26:20 2026] *** +Fri Jan 9 08:26:20 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 08:26:20 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 08:26:20 2026 - nodename: ubserver +Fri Jan 9 08:26:20 2026 - machine: x86_64 +Fri Jan 9 08:26:20 2026 - clock source: unix +Fri Jan 9 08:26:20 2026 - pcre jit disabled +Fri Jan 9 08:26:20 2026 - detected number of CPU cores: 12 +Fri Jan 9 08:26:20 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:26:20 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 08:26:20 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:26:20 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:26:20 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:26:20 2026 - your processes number limit is 61306 +Fri Jan 9 08:26:20 2026 - your memory page size is 4096 bytes +Fri Jan 9 08:26:20 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 08:26:20 2026 - detected max file descriptor number: 1024 +Fri Jan 9 08:26:20 2026 - lock engine: pthread robust mutexes +Fri Jan 9 08:26:20 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 08:26:20 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 08:26:20 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:40093 (port auto-assigned) fd 3 +Fri Jan 9 08:26:20 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:26:20 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:26:20 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 08:26:20 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:26:20 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:26:20 2026 - Python main interpreter initialized at 0x74aa13f52d10 +Fri Jan 9 08:26:20 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:26:20 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:26:20 2026 - python threads support enabled +Fri Jan 9 08:26:20 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 08:26:20 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 08:26:20 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 08:26:20 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 08:26:20 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:26:20 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 08:26:20 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x74aa13f52d10 pid: 1616302 (default app) +Fri Jan 9 08:26:20 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:26:20 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:26:20 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 08:26:20 2026 - gracefully (RE)spawned uWSGI master process (pid: 1616302) +Fri Jan 9 08:26:20 2026 - spawned uWSGI worker 1 (pid: 1776685, cores: 2) +Fri Jan 9 08:26:20 2026 - spawned uWSGI worker 2 (pid: 1776686, cores: 2) +Fri Jan 9 08:26:20 2026 - spawned uWSGI http 1 (pid: 1776689) +Fri Jan 9 08:26:20 2026 - Python auto-reloader enabled +Fri Jan 9 08:26:31 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 08:26:31 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 08:26:31 2026 - gateway "uWSGI http 1" has been buried (pid: 1776689) +Fri Jan 9 08:26:31 2026 - ...gracefully killing workers... +Fri Jan 9 08:26:31 2026 - Gracefully killing worker 1 (pid: 1776685)... +Fri Jan 9 08:26:31 2026 - Gracefully killing worker 2 (pid: 1776686)... +Fri Jan 9 08:26:32 2026 - worker 1 buried after 1 seconds +Fri Jan 9 08:26:32 2026 - worker 2 buried after 1 seconds +Fri Jan 9 08:26:32 2026 - binary reloading uWSGI... +Fri Jan 9 08:26:32 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:26:32 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 08:26:32 2026 - found fd 3 mapped to socket 0 (127.0.0.1:40093) +Fri Jan 9 08:26:32 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 08:26:32 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 08:26:32 2026] *** +Fri Jan 9 08:26:32 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 08:26:32 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 08:26:32 2026 - nodename: ubserver +Fri Jan 9 08:26:32 2026 - machine: x86_64 +Fri Jan 9 08:26:32 2026 - clock source: unix +Fri Jan 9 08:26:32 2026 - pcre jit disabled +Fri Jan 9 08:26:32 2026 - detected number of CPU cores: 12 +Fri Jan 9 08:26:32 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:26:32 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 08:26:32 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:26:32 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:26:32 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:26:32 2026 - your processes number limit is 61306 +Fri Jan 9 08:26:32 2026 - your memory page size is 4096 bytes +Fri Jan 9 08:26:32 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 08:26:32 2026 - detected max file descriptor number: 1024 +Fri Jan 9 08:26:32 2026 - lock engine: pthread robust mutexes +Fri Jan 9 08:26:32 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 08:26:32 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 08:26:32 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:36999 (port auto-assigned) fd 4 +Fri Jan 9 08:26:32 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:26:32 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:26:32 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 08:26:32 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:26:32 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:26:32 2026 - Python main interpreter initialized at 0x7cd2f3552d10 +Fri Jan 9 08:26:32 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:26:32 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:26:32 2026 - python threads support enabled +Fri Jan 9 08:26:32 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 08:26:32 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 08:26:32 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 08:26:32 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 08:26:32 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:26:32 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 08:26:32 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7cd2f3552d10 pid: 1616302 (default app) +Fri Jan 9 08:26:32 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:26:32 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:26:32 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 08:26:32 2026 - gracefully (RE)spawned uWSGI master process (pid: 1616302) +Fri Jan 9 08:26:32 2026 - spawned uWSGI worker 1 (pid: 1776759, cores: 2) +Fri Jan 9 08:26:32 2026 - spawned uWSGI worker 2 (pid: 1776760, cores: 2) +Fri Jan 9 08:26:32 2026 - spawned uWSGI http 1 (pid: 1776765) +Fri Jan 9 08:26:32 2026 - Python auto-reloader enabled +Fri Jan 9 08:28:10 2026 - gateway "uWSGI http 1" has been buried (pid: 1776765) +Fri Jan 9 08:28:10 2026 - ...brutally killing workers... +Fri Jan 9 08:28:11 2026 - worker 1 buried after 1 seconds +Fri Jan 9 08:28:11 2026 - worker 2 buried after 1 seconds +Fri Jan 9 08:28:11 2026 - binary reloading uWSGI... +Fri Jan 9 08:28:11 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:28:11 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 08:28:11 2026 - found fd 4 mapped to socket 0 (127.0.0.1:36999) +Fri Jan 9 08:28:11 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 08:28:11 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 08:28:11 2026] *** +Fri Jan 9 08:28:11 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 08:28:11 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 08:28:11 2026 - nodename: ubserver +Fri Jan 9 08:28:11 2026 - machine: x86_64 +Fri Jan 9 08:28:11 2026 - clock source: unix +Fri Jan 9 08:28:11 2026 - pcre jit disabled +Fri Jan 9 08:28:11 2026 - detected number of CPU cores: 12 +Fri Jan 9 08:28:11 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:28:11 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 08:28:11 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:28:11 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:28:11 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:28:11 2026 - your processes number limit is 61306 +Fri Jan 9 08:28:11 2026 - your memory page size is 4096 bytes +Fri Jan 9 08:28:11 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 08:28:11 2026 - detected max file descriptor number: 1024 +Fri Jan 9 08:28:11 2026 - lock engine: pthread robust mutexes +Fri Jan 9 08:28:11 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 08:28:11 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 08:28:11 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:41691 (port auto-assigned) fd 3 +Fri Jan 9 08:28:11 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:28:11 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:28:11 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 08:28:11 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:28:11 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:28:11 2026 - Python main interpreter initialized at 0x70645f552d10 +Fri Jan 9 08:28:11 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:28:11 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:28:11 2026 - python threads support enabled +Fri Jan 9 08:28:11 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 08:28:11 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 08:28:11 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 08:28:11 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 08:28:11 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:28:11 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 08:28:11 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x70645f552d10 pid: 1616302 (default app) +Fri Jan 9 08:28:11 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:28:11 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:28:11 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 08:28:11 2026 - gracefully (RE)spawned uWSGI master process (pid: 1616302) +Fri Jan 9 08:28:11 2026 - spawned uWSGI worker 1 (pid: 1777277, cores: 2) +Fri Jan 9 08:28:11 2026 - spawned uWSGI worker 2 (pid: 1777278, cores: 2) +Fri Jan 9 08:28:11 2026 - spawned uWSGI http 1 (pid: 1777282) +Fri Jan 9 08:28:11 2026 - Python auto-reloader enabled +Fri Jan 9 08:28:20 2026 - uWSGI worker 1 error: the master disconnected from this worker. Shutting down the worker. +Fri Jan 9 08:28:20 2026 - uWSGI worker 2 error: the master disconnected from this worker. Shutting down the worker. +Fri Jan 9 08:28:20 2026 - uWSGI worker 2 error: the master disconnected from this worker. Shutting down the worker. +Fri Jan 9 08:28:20 2026 - uWSGI worker 1 error: the master disconnected from this worker. Shutting down the worker. +Fri Jan 9 08:28:20 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 08:28:20 2026] *** +Fri Jan 9 08:28:20 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 08:28:20 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 08:28:20 2026 - nodename: ubserver +Fri Jan 9 08:28:20 2026 - machine: x86_64 +Fri Jan 9 08:28:20 2026 - clock source: unix +Fri Jan 9 08:28:20 2026 - pcre jit disabled +Fri Jan 9 08:28:20 2026 - detected number of CPU cores: 12 +Fri Jan 9 08:28:20 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:28:20 2026 - writing pidfile to ./uwsgi-wechat.pid +Fri Jan 9 08:28:20 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 08:28:20 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:28:20 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:28:20 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:28:20 2026 - your processes number limit is 61306 +Fri Jan 9 08:28:20 2026 - your memory page size is 4096 bytes +Fri Jan 9 08:28:20 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 08:28:20 2026 - detected max file descriptor number: 1024 +Fri Jan 9 08:28:20 2026 - lock engine: pthread robust mutexes +Fri Jan 9 08:28:20 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 08:28:20 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 4 +Fri Jan 9 08:28:20 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:34359 (port auto-assigned) fd 3 +Fri Jan 9 08:28:20 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:28:20 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:28:20 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 08:28:20 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:28:20 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:28:20 2026 - Python main interpreter initialized at 0x7a500b552d10 +Fri Jan 9 08:28:20 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:28:20 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:28:20 2026 - python threads support enabled +Fri Jan 9 08:28:20 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 08:28:20 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 08:28:20 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 08:28:20 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 08:28:20 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:28:20 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 08:28:20 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7a500b552d10 pid: 1777323 (default app) +Fri Jan 9 08:28:20 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:28:20 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:28:20 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 08:28:20 2026 - spawned uWSGI master process (pid: 1777323) +Fri Jan 9 08:28:20 2026 - spawned uWSGI worker 1 (pid: 1777366, cores: 2) +Fri Jan 9 08:28:20 2026 - spawned uWSGI worker 2 (pid: 1777369, cores: 2) +Fri Jan 9 08:28:20 2026 - Python auto-reloader enabled +Fri Jan 9 08:28:20 2026 - spawned uWSGI http 1 (pid: 1777371) +2026-01-09 08:29:48 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 08:29:48 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: RXM6iBy1lGhKEHAzzl71zQ7rpp8F43J/HveXh7oBV+Ohnzab4O... +2026-01-09 08:29:48 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: cdc12e2bef00f01d987d9ae321d300a1e5c36c12 +2026-01-09 08:29:48 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: cdc12e2bef00f01d987d9ae321d300a1e5c36c12 +2026-01-09 08:29:48 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 08:29:48 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 08:29:48 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 08:29:48 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=system_status, user=WeiJueSen +2026-01-09 08:29:48 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: system_status, user: WeiJueSen +2026-01-09 08:29:48 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求系统状态 +2026-01-09 08:29:48 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 08:29:48 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 08:29:48 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 08:29:48 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 08:29:48 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 08:29:48 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 08:29:48 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 08:29:48 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 08:29:48 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 08:29:48 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 08:29:48 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 08:29:48 - gx_gp_monitor.notification.wechat - INFO - 企业微信服务初始化完成 +2026-01-09 08:29:49 - gx_gp_monitor.notification.wechat - INFO - 成功获取企业微信访问令牌 +{address space usage: 236441600 bytes/225MB} {rss usage: 48242688 bytes/46MB} [pid: 1777366|app: 0|req: 1/1] 113.108.92.100 () {36 vars in 679 bytes} [Fri Jan 9 08:29:48 2026] POST /api/v1/wechat/callback?msg_signature=cdc12e2bef00f01d987d9ae321d300a1e5c36c12×tamp=1767918588&nonce=1768510076 => generated 1094 bytes in 457 msecs (HTTP/1.1 200) 2 headers in 81 bytes (1 switches on core 0) +2026-01-09 08:30:12 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 08:30:12 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: VYkwtbAIPnpprcyspau+o6woVT+BLSfa9WoVartvZtHggONJ20... +2026-01-09 08:30:12 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: b3867dab975a717dbadcc5bd891ea3c94a209572 +2026-01-09 08:30:12 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: b3867dab975a717dbadcc5bd891ea3c94a209572 +2026-01-09 08:30:12 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 08:30:12 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 08:30:12 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 08:30:12 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=help_guide, user=WeiJueSen +2026-01-09 08:30:12 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: help_guide, user: WeiJueSen +2026-01-09 08:30:12 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求使用说明 +{address space usage: 233619456 bytes/222MB} {rss usage: 38805504 bytes/37MB} [pid: 1777369|app: 0|req: 1/2] 183.47.98.227 () {36 vars in 678 bytes} [Fri Jan 9 08:30:12 2026] POST /api/v1/wechat/callback?msg_signature=b3867dab975a717dbadcc5bd891ea3c94a209572×tamp=1767918612&nonce=1768555491 => generated 2758 bytes in 7 msecs (HTTP/1.1 200) 2 headers in 81 bytes (1 switches on core 0) +Fri Jan 9 08:30:51 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 08:30:51 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 08:30:51 2026 - gateway "uWSGI http 1" has been buried (pid: 1777371) +Fri Jan 9 08:30:51 2026 - ...gracefully killing workers... +Fri Jan 9 08:30:51 2026 - Gracefully killing worker 2 (pid: 1777369)... +Fri Jan 9 08:30:51 2026 - Gracefully killing worker 1 (pid: 1777366)... +Fri Jan 9 08:30:52 2026 - worker 1 buried after 1 seconds +Fri Jan 9 08:30:52 2026 - worker 2 buried after 1 seconds +Fri Jan 9 08:30:52 2026 - binary reloading uWSGI... +Fri Jan 9 08:30:52 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:30:52 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 08:30:52 2026 - found fd 3 mapped to socket 0 (127.0.0.1:34359) +Fri Jan 9 08:30:52 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 08:30:52 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 08:30:52 2026] *** +Fri Jan 9 08:30:52 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 08:30:52 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 08:30:52 2026 - nodename: ubserver +Fri Jan 9 08:30:52 2026 - machine: x86_64 +Fri Jan 9 08:30:52 2026 - clock source: unix +Fri Jan 9 08:30:52 2026 - pcre jit disabled +Fri Jan 9 08:30:52 2026 - detected number of CPU cores: 12 +Fri Jan 9 08:30:52 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:30:52 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 08:30:52 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:30:52 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:30:52 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:30:52 2026 - your processes number limit is 61306 +Fri Jan 9 08:30:52 2026 - your memory page size is 4096 bytes +Fri Jan 9 08:30:52 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 08:30:52 2026 - detected max file descriptor number: 1024 +Fri Jan 9 08:30:52 2026 - lock engine: pthread robust mutexes +Fri Jan 9 08:30:52 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 08:30:52 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 08:30:52 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:37271 (port auto-assigned) fd 4 +Fri Jan 9 08:30:52 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:30:52 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:30:52 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 08:30:52 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:30:52 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:30:52 2026 - Python main interpreter initialized at 0x7c9573552d10 +Fri Jan 9 08:30:52 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:30:52 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:30:52 2026 - python threads support enabled +Fri Jan 9 08:30:52 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 08:30:52 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 08:30:52 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 08:30:52 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 08:30:52 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:30:52 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 08:30:52 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7c9573552d10 pid: 1777323 (default app) +Fri Jan 9 08:30:52 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:30:52 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:30:52 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 08:30:52 2026 - gracefully (RE)spawned uWSGI master process (pid: 1777323) +Fri Jan 9 08:30:52 2026 - spawned uWSGI worker 1 (pid: 1778517, cores: 2) +Fri Jan 9 08:30:52 2026 - spawned uWSGI worker 2 (pid: 1778519, cores: 2) +Fri Jan 9 08:30:52 2026 - Python auto-reloader enabled +Fri Jan 9 08:30:52 2026 - spawned uWSGI http 1 (pid: 1778521) +Fri Jan 9 08:40:42 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 08:40:42 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 08:40:42 2026 - gateway "uWSGI http 1" has been buried (pid: 1778521) +Fri Jan 9 08:40:42 2026 - ...gracefully killing workers... +Fri Jan 9 08:40:42 2026 - Gracefully killing worker 2 (pid: 1778519)... +Fri Jan 9 08:40:42 2026 - Gracefully killing worker 1 (pid: 1778517)... +Fri Jan 9 08:40:43 2026 - worker 1 buried after 1 seconds +Fri Jan 9 08:40:43 2026 - worker 2 buried after 1 seconds +Fri Jan 9 08:40:43 2026 - binary reloading uWSGI... +Fri Jan 9 08:40:43 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:40:43 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 08:40:43 2026 - found fd 4 mapped to socket 0 (127.0.0.1:37271) +Fri Jan 9 08:40:43 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 08:40:43 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 08:40:43 2026] *** +Fri Jan 9 08:40:43 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 08:40:43 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 08:40:43 2026 - nodename: ubserver +Fri Jan 9 08:40:43 2026 - machine: x86_64 +Fri Jan 9 08:40:43 2026 - clock source: unix +Fri Jan 9 08:40:43 2026 - pcre jit disabled +Fri Jan 9 08:40:43 2026 - detected number of CPU cores: 12 +Fri Jan 9 08:40:43 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:40:43 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 08:40:43 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:40:43 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:40:43 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:40:43 2026 - your processes number limit is 61306 +Fri Jan 9 08:40:43 2026 - your memory page size is 4096 bytes +Fri Jan 9 08:40:43 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 08:40:43 2026 - detected max file descriptor number: 1024 +Fri Jan 9 08:40:43 2026 - lock engine: pthread robust mutexes +Fri Jan 9 08:40:43 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 08:40:43 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 08:40:43 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:45569 (port auto-assigned) fd 3 +Fri Jan 9 08:40:43 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:40:43 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:40:43 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 08:40:43 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:40:43 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:40:43 2026 - Python main interpreter initialized at 0x7d49f5552d10 +Fri Jan 9 08:40:43 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:40:43 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:40:43 2026 - python threads support enabled +Fri Jan 9 08:40:43 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 08:40:43 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 08:40:43 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 08:40:43 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 08:40:43 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:40:43 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 08:40:43 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7d49f5552d10 pid: 1777323 (default app) +Fri Jan 9 08:40:43 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:40:43 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:40:43 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 08:40:43 2026 - gracefully (RE)spawned uWSGI master process (pid: 1777323) +Fri Jan 9 08:40:43 2026 - spawned uWSGI worker 1 (pid: 1781557, cores: 2) +Fri Jan 9 08:40:43 2026 - spawned uWSGI worker 2 (pid: 1781558, cores: 2) +Fri Jan 9 08:40:43 2026 - spawned uWSGI http 1 (pid: 1781563) +Fri Jan 9 08:40:43 2026 - Python auto-reloader enabled +Fri Jan 9 08:42:17 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 08:42:17 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 08:42:17 2026 - gateway "uWSGI http 1" has been buried (pid: 1781563) +Fri Jan 9 08:42:17 2026 - ...gracefully killing workers... +Fri Jan 9 08:42:17 2026 - Gracefully killing worker 2 (pid: 1781558)... +Fri Jan 9 08:42:17 2026 - Gracefully killing worker 1 (pid: 1781557)... +Fri Jan 9 08:42:18 2026 - worker 1 buried after 1 seconds +Fri Jan 9 08:42:18 2026 - worker 2 buried after 1 seconds +Fri Jan 9 08:42:18 2026 - binary reloading uWSGI... +Fri Jan 9 08:42:18 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:42:18 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 08:42:18 2026 - found fd 3 mapped to socket 0 (127.0.0.1:45569) +Fri Jan 9 08:42:18 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 08:42:18 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 08:42:18 2026] *** +Fri Jan 9 08:42:18 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 08:42:18 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 08:42:18 2026 - nodename: ubserver +Fri Jan 9 08:42:18 2026 - machine: x86_64 +Fri Jan 9 08:42:18 2026 - clock source: unix +Fri Jan 9 08:42:18 2026 - pcre jit disabled +Fri Jan 9 08:42:18 2026 - detected number of CPU cores: 12 +Fri Jan 9 08:42:18 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:42:18 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 08:42:18 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:42:18 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:42:18 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:42:18 2026 - your processes number limit is 61306 +Fri Jan 9 08:42:18 2026 - your memory page size is 4096 bytes +Fri Jan 9 08:42:18 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 08:42:18 2026 - detected max file descriptor number: 1024 +Fri Jan 9 08:42:18 2026 - lock engine: pthread robust mutexes +Fri Jan 9 08:42:18 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 08:42:18 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 08:42:18 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:42537 (port auto-assigned) fd 4 +Fri Jan 9 08:42:18 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:42:18 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:42:18 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 08:42:18 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:42:18 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:42:18 2026 - Python main interpreter initialized at 0x7186cfb52d10 +Fri Jan 9 08:42:18 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:42:18 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:42:18 2026 - python threads support enabled +Fri Jan 9 08:42:18 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 08:42:18 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 08:42:18 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 08:42:18 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 08:42:18 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:42:18 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 08:42:18 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7186cfb52d10 pid: 1777323 (default app) +Fri Jan 9 08:42:18 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:42:18 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:42:18 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 08:42:18 2026 - gracefully (RE)spawned uWSGI master process (pid: 1777323) +Fri Jan 9 08:42:18 2026 - spawned uWSGI worker 1 (pid: 1782024, cores: 2) +Fri Jan 9 08:42:18 2026 - spawned uWSGI worker 2 (pid: 1782025, cores: 2) +Fri Jan 9 08:42:18 2026 - Python auto-reloader enabled +Fri Jan 9 08:42:18 2026 - spawned uWSGI http 1 (pid: 1782028) +Fri Jan 9 08:42:58 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 08:42:58 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 08:42:58 2026 - gateway "uWSGI http 1" has been buried (pid: 1782028) +Fri Jan 9 08:42:58 2026 - ...gracefully killing workers... +Fri Jan 9 08:42:58 2026 - Gracefully killing worker 1 (pid: 1782024)... +Fri Jan 9 08:42:58 2026 - Gracefully killing worker 2 (pid: 1782025)... +Fri Jan 9 08:42:59 2026 - worker 1 buried after 1 seconds +Fri Jan 9 08:42:59 2026 - worker 2 buried after 1 seconds +Fri Jan 9 08:42:59 2026 - binary reloading uWSGI... +Fri Jan 9 08:42:59 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:42:59 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 08:42:59 2026 - found fd 4 mapped to socket 0 (127.0.0.1:42537) +Fri Jan 9 08:42:59 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 08:42:59 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 08:42:59 2026] *** +Fri Jan 9 08:42:59 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 08:42:59 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 08:42:59 2026 - nodename: ubserver +Fri Jan 9 08:42:59 2026 - machine: x86_64 +Fri Jan 9 08:42:59 2026 - clock source: unix +Fri Jan 9 08:42:59 2026 - pcre jit disabled +Fri Jan 9 08:42:59 2026 - detected number of CPU cores: 12 +Fri Jan 9 08:42:59 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:42:59 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 08:42:59 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:42:59 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:42:59 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:42:59 2026 - your processes number limit is 61306 +Fri Jan 9 08:42:59 2026 - your memory page size is 4096 bytes +Fri Jan 9 08:42:59 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 08:42:59 2026 - detected max file descriptor number: 1024 +Fri Jan 9 08:42:59 2026 - lock engine: pthread robust mutexes +Fri Jan 9 08:42:59 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 08:42:59 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 08:42:59 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:35281 (port auto-assigned) fd 3 +Fri Jan 9 08:42:59 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:42:59 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:42:59 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 08:42:59 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:42:59 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:42:59 2026 - Python main interpreter initialized at 0x70ee77f52d10 +Fri Jan 9 08:42:59 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:42:59 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:42:59 2026 - python threads support enabled +Fri Jan 9 08:42:59 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 08:42:59 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 08:42:59 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 08:42:59 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 08:43:00 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:43:00 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 08:43:00 2026 - WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x70ee77f52d10 pid: 1777323 (default app) +Fri Jan 9 08:43:00 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:43:00 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:43:00 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 08:43:00 2026 - gracefully (RE)spawned uWSGI master process (pid: 1777323) +Fri Jan 9 08:43:00 2026 - spawned uWSGI worker 1 (pid: 1782218, cores: 2) +Fri Jan 9 08:43:00 2026 - spawned uWSGI worker 2 (pid: 1782221, cores: 2) +Fri Jan 9 08:43:00 2026 - Python auto-reloader enabled +Fri Jan 9 08:43:00 2026 - spawned uWSGI http 1 (pid: 1782222) +Fri Jan 9 08:43:31 2026 - gateway "uWSGI http 1" has been buried (pid: 1782222) +Fri Jan 9 08:43:31 2026 - ...brutally killing workers... +Fri Jan 9 08:43:32 2026 - worker 1 buried after 1 seconds +Fri Jan 9 08:43:32 2026 - worker 2 buried after 1 seconds +Fri Jan 9 08:43:32 2026 - binary reloading uWSGI... +Fri Jan 9 08:43:32 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:43:32 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 08:43:32 2026 - found fd 3 mapped to socket 0 (127.0.0.1:35281) +Fri Jan 9 08:43:32 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 08:43:32 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 08:43:32 2026] *** +Fri Jan 9 08:43:32 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 08:43:32 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 08:43:32 2026 - nodename: ubserver +Fri Jan 9 08:43:32 2026 - machine: x86_64 +Fri Jan 9 08:43:32 2026 - clock source: unix +Fri Jan 9 08:43:32 2026 - pcre jit disabled +Fri Jan 9 08:43:32 2026 - detected number of CPU cores: 12 +Fri Jan 9 08:43:32 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:43:32 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 08:43:32 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:43:32 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:43:32 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:43:32 2026 - your processes number limit is 61306 +Fri Jan 9 08:43:32 2026 - your memory page size is 4096 bytes +Fri Jan 9 08:43:32 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 08:43:32 2026 - detected max file descriptor number: 1024 +Fri Jan 9 08:43:32 2026 - lock engine: pthread robust mutexes +Fri Jan 9 08:43:32 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 08:43:32 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 08:43:32 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:42161 (port auto-assigned) fd 4 +Fri Jan 9 08:43:32 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:43:32 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:43:32 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 08:43:32 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:43:32 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:43:32 2026 - Python main interpreter initialized at 0x702810152d10 +Fri Jan 9 08:43:32 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:43:32 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:43:32 2026 - python threads support enabled +Fri Jan 9 08:43:32 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 08:43:32 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 08:43:32 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 08:43:32 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 08:43:32 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:43:32 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 08:43:32 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x702810152d10 pid: 1777323 (default app) +Fri Jan 9 08:43:32 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:43:32 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:43:32 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 08:43:32 2026 - gracefully (RE)spawned uWSGI master process (pid: 1777323) +Fri Jan 9 08:43:32 2026 - spawned uWSGI worker 1 (pid: 1782381, cores: 2) +Fri Jan 9 08:43:32 2026 - spawned uWSGI worker 2 (pid: 1782384, cores: 2) +Fri Jan 9 08:43:32 2026 - Python auto-reloader enabled +Fri Jan 9 08:43:32 2026 - spawned uWSGI http 1 (pid: 1782387) +Fri Jan 9 08:43:41 2026 - uWSGI worker 2 error: the master disconnected from this worker. Shutting down the worker. +Fri Jan 9 08:43:41 2026 - uWSGI worker 2 error: the master disconnected from this worker. Shutting down the worker. +Fri Jan 9 08:43:41 2026 - uWSGI worker 1 error: the master disconnected from this worker. Shutting down the worker. +Fri Jan 9 08:43:41 2026 - uWSGI worker 1 error: the master disconnected from this worker. Shutting down the worker. +Fri Jan 9 08:43:41 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 08:43:41 2026] *** +Fri Jan 9 08:43:41 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 08:43:41 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 08:43:41 2026 - nodename: ubserver +Fri Jan 9 08:43:41 2026 - machine: x86_64 +Fri Jan 9 08:43:41 2026 - clock source: unix +Fri Jan 9 08:43:41 2026 - pcre jit disabled +Fri Jan 9 08:43:41 2026 - detected number of CPU cores: 12 +Fri Jan 9 08:43:41 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:43:41 2026 - writing pidfile to ./uwsgi-wechat.pid +Fri Jan 9 08:43:41 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 08:43:41 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:43:41 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:43:41 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 08:43:41 2026 - your processes number limit is 61306 +Fri Jan 9 08:43:41 2026 - your memory page size is 4096 bytes +Fri Jan 9 08:43:41 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 08:43:41 2026 - detected max file descriptor number: 1024 +Fri Jan 9 08:43:41 2026 - lock engine: pthread robust mutexes +Fri Jan 9 08:43:41 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 08:43:41 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 4 +Fri Jan 9 08:43:41 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:46665 (port auto-assigned) fd 3 +Fri Jan 9 08:43:41 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:43:41 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:43:41 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 08:43:41 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:43:41 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 08:43:41 2026 - Python main interpreter initialized at 0x741281352d10 +Fri Jan 9 08:43:41 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:43:41 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:43:41 2026 - python threads support enabled +Fri Jan 9 08:43:41 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 08:43:41 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 08:43:41 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 08:43:41 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 08:43:41 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 08:43:41 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 08:43:41 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x741281352d10 pid: 1782404 (default app) +Fri Jan 9 08:43:41 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 08:43:41 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 08:43:41 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 08:43:41 2026 - spawned uWSGI master process (pid: 1782404) +Fri Jan 9 08:43:41 2026 - spawned uWSGI worker 1 (pid: 1782423, cores: 2) +Fri Jan 9 08:43:41 2026 - spawned uWSGI worker 2 (pid: 1782424, cores: 2) +Fri Jan 9 08:43:41 2026 - spawned uWSGI http 1 (pid: 1782428) +Fri Jan 9 08:43:41 2026 - Python auto-reloader enabled +2026-01-09 09:13:20 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 09:13:20 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: S85Mv12UhBqhnCoEyCf2GdrP0uHiDB61RmzIcmMqk5vRLfhDC7... +2026-01-09 09:13:20 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 05a3dac6f360b335ba50de40004324f8668f476b +2026-01-09 09:13:20 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 05a3dac6f360b335ba50de40004324f8668f476b +2026-01-09 09:13:20 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 09:13:20 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 09:13:20 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 09:13:20 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 09:13:20 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 09:13:20 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 09:13:20 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 09:13:20 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 09:13:20 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 09:13:20 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 09:13:20 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 09:13:20 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 09:13:20 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 09:13:20 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 09:13:20 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 09:13:20 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 09:13:20 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 09:13:20 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 09:13:25 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 09:13:25 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: S85Mv12UhBqhnCoEyCf2GdrP0uHiDB61RmzIcmMqk5vRLfhDC7... +2026-01-09 09:13:25 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 05a3dac6f360b335ba50de40004324f8668f476b +2026-01-09 09:13:25 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 05a3dac6f360b335ba50de40004324f8668f476b +2026-01-09 09:13:25 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 09:13:25 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 09:13:25 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 09:13:25 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 09:13:25 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 09:13:25 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 09:13:25 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 09:13:25 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 09:13:25 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 09:13:30 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 09:13:30 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: S85Mv12UhBqhnCoEyCf2GdrP0uHiDB61RmzIcmMqk5vRLfhDC7... +2026-01-09 09:13:30 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 05a3dac6f360b335ba50de40004324f8668f476b +2026-01-09 09:13:30 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 05a3dac6f360b335ba50de40004324f8668f476b +2026-01-09 09:13:30 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 09:13:30 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 09:13:30 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 09:13:30 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 09:13:30 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 09:13:30 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 09:13:30 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 09:13:30 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 09:13:30 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 09:13:30 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 09:13:30 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 09:13:30 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 09:13:30 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 09:13:30 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 09:13:30 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 09:13:30 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 09:13:30 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 09:13:30 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 09:13:49 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 09:13:49 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: cRRv0gPY6is3KD1jEwXBytUOrRdzu3Db4yWqdjO1eZIZ1lAL+k... +2026-01-09 09:13:49 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: e022be893dc3976c41438b805a0559df33dbded5 +2026-01-09 09:13:49 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: e022be893dc3976c41438b805a0559df33dbded5 +2026-01-09 09:13:49 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 09:13:49 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 09:13:49 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 09:13:49 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=system_status, user=WeiJueSen +2026-01-09 09:13:49 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: system_status, user: WeiJueSen +2026-01-09 09:13:49 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求系统状态 +2026-01-09 09:13:49 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 09:13:49 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 09:13:49 - gx_gp_monitor.notification.wechat - INFO - 企业微信服务初始化完成 +2026-01-09 09:13:49 - gx_gp_monitor.notification.wechat - INFO - 成功获取企业微信访问令牌 +{address space usage: 247619584 bytes/236MB} {rss usage: 60739584 bytes/57MB} [pid: 1782423|app: 0|req: 2/1] 14.116.241.251 () {36 vars in 679 bytes} [Fri Jan 9 09:13:49 2026] POST /api/v1/wechat/callback?msg_signature=e022be893dc3976c41438b805a0559df33dbded5×tamp=1767921229&nonce=1768316751 => generated 798 bytes in 250 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 1) +2026-01-09 09:13:50 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:50 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.49秒 +2026-01-09 09:13:50 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 09:13:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:51 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 09:13:51 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 09:13:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:51 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 09:13:51 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 09:13:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:51 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 09:13:51 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 09:13:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:51 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 09:13:51 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 09:13:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:51 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:13:51 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 09:13:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:52 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.36秒 +2026-01-09 09:13:52 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 09:13:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:52 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 09:13:52 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 09:13:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:52 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 09:13:52 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 09:13:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:52 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 09:13:52 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 09:13:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:53 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 09:13:53 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 09:13:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:53 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.15秒 +2026-01-09 09:13:53 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 09:13:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:53 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 09:13:53 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 09:13:53 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 09:13:53 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 09:13:53 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 63 条公告 +2026-01-09 09:13:53 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 63 -> 0 条公告 +2026-01-09 09:13:53 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 0 -> 0 条公告 +2026-01-09 09:13:53 - gx_gp_monitor.main - INFO - 筛选后剩余 0 条公告 +2026-01-09 09:13:53 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 09:13:53 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 0, 'saved': 0, 'markdown_generated': False, 'notification_sent': False, 'filter_stats': {'keyword_filtered': 63, 'date_filtered': 1237, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': []} +{address space usage: 254005248 bytes/242MB} {rss usage: 71413760 bytes/68MB} [pid: 1782424|app: 0|req: 2/2] 113.108.92.100 () {36 vars in 678 bytes} [Fri Jan 9 09:13:20 2026] POST /api/v1/wechat/callback?msg_signature=05a3dac6f360b335ba50de40004324f8668f476b×tamp=1767921199&nonce=1768905689 => generated 798 bytes in 33402 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 0) +2026-01-09 09:13:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:55 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.38秒 +2026-01-09 09:13:55 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 09:13:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:55 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 09:13:55 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 09:13:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:55 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 09:13:55 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 09:13:56 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:56 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:13:56 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 09:13:56 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:56 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 09:13:56 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 09:13:56 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:56 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 09:13:56 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 09:13:56 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:56 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.35秒 +2026-01-09 09:13:56 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 09:13:56 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:56 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 09:13:56 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 09:13:57 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:57 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 09:13:57 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 09:13:57 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:57 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:13:57 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 09:13:57 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:57 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 09:13:57 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 09:13:57 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:57 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 09:13:57 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 09:13:57 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:13:57 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 09:13:57 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 09:13:57 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 09:13:57 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 09:13:57 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 63 条公告 +2026-01-09 09:13:57 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 63 -> 0 条公告 +2026-01-09 09:13:57 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 0 -> 0 条公告 +2026-01-09 09:13:57 - gx_gp_monitor.main - INFO - 筛选后剩余 0 条公告 +2026-01-09 09:13:57 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 09:13:57 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 0, 'saved': 0, 'markdown_generated': False, 'notification_sent': False, 'filter_stats': {'keyword_filtered': 63, 'date_filtered': 1237, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': []} +{address space usage: 243519488 bytes/232MB} {rss usage: 61194240 bytes/58MB} [pid: 1782424|app: 0|req: 2/3] 106.55.202.215 () {36 vars in 679 bytes} [Fri Jan 9 09:13:25 2026] POST /api/v1/wechat/callback?msg_signature=05a3dac6f360b335ba50de40004324f8668f476b×tamp=1767921199&nonce=1768905689 => generated 798 bytes in 32920 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 1) +2026-01-09 09:14:00 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:00 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.40秒 +2026-01-09 09:14:00 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 09:14:00 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:00 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 09:14:00 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 09:14:01 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:01 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 09:14:01 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 09:14:01 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:01 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 09:14:01 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 09:14:01 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:01 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.30秒 +2026-01-09 09:14:01 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 09:14:01 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:01 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 09:14:01 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 09:14:02 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:02 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.37秒 +2026-01-09 09:14:02 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 09:14:02 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:02 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 09:14:02 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 09:14:02 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:02 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 09:14:02 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 09:14:02 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:02 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:14:02 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 09:14:02 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:02 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 09:14:02 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 09:14:03 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:03 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.14秒 +2026-01-09 09:14:03 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 09:14:03 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:03 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:14:03 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 09:14:03 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 09:14:03 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 09:14:03 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 63 条公告 +2026-01-09 09:14:03 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 63 -> 0 条公告 +2026-01-09 09:14:03 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 0 -> 0 条公告 +2026-01-09 09:14:03 - gx_gp_monitor.main - INFO - 筛选后剩余 0 条公告 +2026-01-09 09:14:03 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 09:14:03 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 0, 'saved': 0, 'markdown_generated': False, 'notification_sent': False, 'filter_stats': {'keyword_filtered': 63, 'date_filtered': 1237, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': []} +{address space usage: 241307648 bytes/230MB} {rss usage: 54820864 bytes/52MB} [pid: 1782423|app: 0|req: 2/4] 106.55.227.187 () {36 vars in 679 bytes} [Fri Jan 9 09:13:30 2026] POST /api/v1/wechat/callback?msg_signature=05a3dac6f360b335ba50de40004324f8668f476b×tamp=1767921199&nonce=1768905689 => generated 798 bytes in 33207 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 0) +2026-01-09 09:14:09 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 09:14:09 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: gyx7vxH2zqMjazNfk20XsqoWAPeraaE5WmiJ8W2KXSNI9Nm0eA... +2026-01-09 09:14:09 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 2f7b8f2f76bd50a36fbd191142f5ff1e3803157e +2026-01-09 09:14:09 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 2f7b8f2f76bd50a36fbd191142f5ff1e3803157e +2026-01-09 09:14:09 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 09:14:09 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 09:14:09 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 09:14:09 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=keyword_search, user=WeiJueSen +2026-01-09 09:14:09 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: keyword_search, user: WeiJueSen +2026-01-09 09:14:09 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 触发关键词搜索菜单 +{address space usage: 243519488 bytes/232MB} {rss usage: 61194240 bytes/58MB} [pid: 1782424|app: 0|req: 3/5] 183.47.117.101 () {36 vars in 679 bytes} [Fri Jan 9 09:14:09 2026] POST /api/v1/wechat/callback?msg_signature=2f7b8f2f76bd50a36fbd191142f5ff1e3803157e×tamp=1767921249&nonce=1767999424 => generated 1054 bytes in 0 msecs (HTTP/1.1 200) 2 headers in 81 bytes (1 switches on core 0) +2026-01-09 09:14:17 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 09:14:17 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: mysaThIKeH57rqN/s+0oiaicH1gDxV8MkDM2SIOVR4luy0quyh... +2026-01-09 09:14:17 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 204c42bde1a4e8aad7b3d4f5b2ef8c3145b538fa +2026-01-09 09:14:17 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 204c42bde1a4e8aad7b3d4f5b2ef8c3145b538fa +2026-01-09 09:14:17 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 09:14:17 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 09:14:17 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 09:14:17 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 09:14:17 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 09:14:17 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 09:14:17 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 09:14:17 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 09:14:17 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 09:14:22 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 09:14:22 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: mysaThIKeH57rqN/s+0oiaicH1gDxV8MkDM2SIOVR4luy0quyh... +2026-01-09 09:14:22 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 204c42bde1a4e8aad7b3d4f5b2ef8c3145b538fa +2026-01-09 09:14:22 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 204c42bde1a4e8aad7b3d4f5b2ef8c3145b538fa +2026-01-09 09:14:22 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 09:14:22 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 09:14:22 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 09:14:22 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 09:14:22 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 09:14:22 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 09:14:22 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 09:14:22 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 09:14:22 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: mp1j++4grFMsPYo7YXgXOf1C52HWtxx6qWCHvAyMy1HL8SBUqf... +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 501bf3b1b00e3662707a0775828f2eb273c49efe +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 501bf3b1b00e3662707a0775828f2eb273c49efe +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=crawl_now, user=WeiJueSen +2026-01-09 09:14:27 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: crawl_now, user: WeiJueSen +2026-01-09 09:14:27 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 触发立即搜索 +2026-01-09 09:14:27 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: False) +2026-01-09 09:14:27 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 09:14:27 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: mysaThIKeH57rqN/s+0oiaicH1gDxV8MkDM2SIOVR4luy0quyh... +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 204c42bde1a4e8aad7b3d4f5b2ef8c3145b538fa +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 204c42bde1a4e8aad7b3d4f5b2ef8c3145b538fa +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 09:14:27 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 09:14:27 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 09:14:27 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 09:14:27 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 09:14:27 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 09:14:27 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 09:14:27 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:27 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 0.40秒 +2026-01-09 09:14:27 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 09:14:27 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:27 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 09:14:27 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 09:14:28 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:28 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 09:14:28 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 09:14:28 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:28 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 09:14:28 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 09:14:28 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:28 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 09:14:28 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 09:14:28 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:28 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 09:14:28 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 09:14:28 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:28 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.35秒 +2026-01-09 09:14:28 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 09:14:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:29 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:14:29 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 09:14:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:29 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:14:29 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 09:14:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:29 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 09:14:29 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 09:14:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:29 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 09:14:29 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 09:14:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:29 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 09:14:29 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 09:14:30 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:30 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 09:14:30 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 开始按来源保存 1300 条公告,每个来源最多保留 100 条 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement1 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement2 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement3 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement4 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement5 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement6 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement7 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement10 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement11 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement20 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement21 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement23 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 来源 61-266648 保存了 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.storage.postgresql - INFO - 按来源保存完成,总计保存 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.main - INFO - 保存所有公告完成:共保存 0 条,按来源统计: {'ZcyAnnouncement1': 0, 'ZcyAnnouncement2': 0, 'ZcyAnnouncement3': 0, 'ZcyAnnouncement4': 0, 'ZcyAnnouncement5': 0, 'ZcyAnnouncement6': 0, 'ZcyAnnouncement7': 0, 'ZcyAnnouncement10': 0, 'ZcyAnnouncement11': 0, 'ZcyAnnouncement20': 0, 'ZcyAnnouncement21': 0, 'ZcyAnnouncement23': 0, '61-266648': 0} +2026-01-09 09:14:30 - gx_gp_monitor.main - INFO - 筛选出 1300 条新公告 +2026-01-09 09:14:30 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1300 -> 1300 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.filters.filters - INFO - 去重筛选: 移除了 1300 条重复公告 +2026-01-09 09:14:30 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 0 -> 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.filters.filters - INFO - 筛选完成: 总数 1300 -> 筛选后 0 (关键词: 0, 日期: 0, 去重: 1300, 来源: 0) +2026-01-09 09:14:30 - gx_gp_monitor.main - INFO - 筛选后剩余 0 条公告 +2026-01-09 09:14:30 - gx_gp_monitor.storage.md_generator - INFO - Markdown文件已保存到: onu.md (共 0 条公告) +2026-01-09 09:14:30 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 0, 'saved': 0, 'markdown_generated': True, 'notification_sent': False, 'filter_stats': {'keyword_filtered': 1300, 'date_filtered': 0, 'duplicate_filtered': 1300, 'source_filtered': 0}} +{address space usage: 252985344 bytes/241MB} {rss usage: 71553024 bytes/68MB} [pid: 1782424|app: 0|req: 5/6] 183.47.98.227 () {36 vars in 678 bytes} [Fri Jan 9 09:14:27 2026] POST /api/v1/wechat/callback?msg_signature=501bf3b1b00e3662707a0775828f2eb273c49efe×tamp=1767921267&nonce=1768019490 => generated 754 bytes in 3328 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 0) +2026-01-09 09:14:47 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:47 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.54秒 +2026-01-09 09:14:47 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 09:14:48 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:48 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 09:14:48 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 09:14:48 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:48 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 09:14:48 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 09:14:48 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:48 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 09:14:48 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 09:14:48 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:48 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 09:14:48 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 09:14:49 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:49 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 09:14:49 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 09:14:49 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:49 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.38秒 +2026-01-09 09:14:49 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 09:14:49 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:49 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 09:14:49 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 09:14:49 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:49 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 09:14:49 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 09:14:50 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:50 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:14:50 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 09:14:50 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:50 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 09:14:50 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 09:14:50 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:50 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:14:50 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 09:14:50 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:50 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 09:14:50 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 09:14:50 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 09:14:50 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 09:14:50 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 66 条公告 +2026-01-09 09:14:50 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 66 -> 0 条公告 +2026-01-09 09:14:50 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 0 -> 0 条公告 +2026-01-09 09:14:50 - gx_gp_monitor.main - INFO - 筛选后剩余 0 条公告 +2026-01-09 09:14:50 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 09:14:50 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 0, 'saved': 0, 'markdown_generated': False, 'notification_sent': False, 'filter_stats': {'keyword_filtered': 66, 'date_filtered': 1234, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': []} +{address space usage: 247742464 bytes/236MB} {rss usage: 66420736 bytes/63MB} [pid: 1782424|app: 0|req: 5/7] 183.47.117.101 () {36 vars in 679 bytes} [Fri Jan 9 09:14:17 2026] POST /api/v1/wechat/callback?msg_signature=204c42bde1a4e8aad7b3d4f5b2ef8c3145b538fa×tamp=1767921257&nonce=1768264184 => generated 798 bytes in 33167 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 1) +2026-01-09 09:14:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:53 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.55秒 +2026-01-09 09:14:53 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 09:14:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:53 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.28秒 +2026-01-09 09:14:53 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 09:14:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:53 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 09:14:53 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 09:14:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:53 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 09:14:53 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 09:14:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:53 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:14:53 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 09:14:54 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:54 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 09:14:54 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 09:14:54 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:54 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.39秒 +2026-01-09 09:14:54 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 09:14:54 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:54 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 09:14:54 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 09:14:54 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:54 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 09:14:54 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 09:14:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:55 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 09:14:55 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 09:14:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:55 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 09:14:55 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 09:14:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:55 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 09:14:55 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 09:14:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:55 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 09:14:55 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 09:14:55 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 09:14:55 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 09:14:55 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 66 条公告 +2026-01-09 09:14:55 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 66 -> 0 条公告 +2026-01-09 09:14:55 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 0 -> 0 条公告 +2026-01-09 09:14:55 - gx_gp_monitor.main - INFO - 筛选后剩余 0 条公告 +2026-01-09 09:14:55 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 09:14:55 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 0, 'saved': 0, 'markdown_generated': False, 'notification_sent': False, 'filter_stats': {'keyword_filtered': 66, 'date_filtered': 1234, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': []} +{address space usage: 253407232 bytes/241MB} {rss usage: 72110080 bytes/68MB} [pid: 1782423|app: 0|req: 4/8] 106.55.201.217 () {36 vars in 679 bytes} [Fri Jan 9 09:14:22 2026] POST /api/v1/wechat/callback?msg_signature=204c42bde1a4e8aad7b3d4f5b2ef8c3145b538fa×tamp=1767921257&nonce=1768264184 => generated 798 bytes in 33282 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 1) +2026-01-09 09:14:57 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:57 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.37秒 +2026-01-09 09:14:57 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 09:14:58 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:58 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 09:14:58 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 09:14:58 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:58 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 09:14:58 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 09:14:58 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:58 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 09:14:58 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 09:14:58 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:58 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 09:14:58 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 09:14:58 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:58 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 09:14:58 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 09:14:59 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:59 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.41秒 +2026-01-09 09:14:59 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 09:14:59 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:59 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.26秒 +2026-01-09 09:14:59 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 09:14:59 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:59 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 09:14:59 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 09:14:59 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:14:59 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 09:14:59 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 09:15:00 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:15:00 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 09:15:00 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 09:15:00 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:15:00 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 09:15:00 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 09:15:00 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 09:15:00 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 09:15:00 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 09:15:00 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 09:15:00 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 09:15:00 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 66 条公告 +2026-01-09 09:15:00 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 66 -> 0 条公告 +2026-01-09 09:15:00 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 0 -> 0 条公告 +2026-01-09 09:15:00 - gx_gp_monitor.main - INFO - 筛选后剩余 0 条公告 +2026-01-09 09:15:00 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 09:15:00 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 0, 'saved': 0, 'markdown_generated': False, 'notification_sent': False, 'filter_stats': {'keyword_filtered': 66, 'date_filtered': 1234, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': []} +{address space usage: 243441664 bytes/232MB} {rss usage: 62099456 bytes/59MB} [pid: 1782423|app: 0|req: 4/9] 106.55.227.187 () {36 vars in 678 bytes} [Fri Jan 9 09:14:27 2026] POST /api/v1/wechat/callback?msg_signature=204c42bde1a4e8aad7b3d4f5b2ef8c3145b538fa×tamp=1767921257&nonce=1768264184 => generated 798 bytes in 33163 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 0) +Fri Jan 9 10:01:03 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:01:03 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:01:03 2026 - gateway "uWSGI http 1" has been buried (pid: 1782428) +Fri Jan 9 10:01:03 2026 - ...gracefully killing workers... +Fri Jan 9 10:01:03 2026 - Gracefully killing worker 1 (pid: 1782423)... +Fri Jan 9 10:01:03 2026 - Gracefully killing worker 2 (pid: 1782424)... +Fri Jan 9 10:01:04 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:01:04 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:01:04 2026 - binary reloading uWSGI... +Fri Jan 9 10:01:04 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:01:04 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:01:04 2026 - found fd 3 mapped to socket 0 (127.0.0.1:46665) +Fri Jan 9 10:01:04 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:01:04 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:01:04 2026] *** +Fri Jan 9 10:01:04 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:01:04 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:01:04 2026 - nodename: ubserver +Fri Jan 9 10:01:04 2026 - machine: x86_64 +Fri Jan 9 10:01:04 2026 - clock source: unix +Fri Jan 9 10:01:04 2026 - pcre jit disabled +Fri Jan 9 10:01:04 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:01:04 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:01:04 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:01:04 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:01:04 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:01:04 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:01:04 2026 - your processes number limit is 61306 +Fri Jan 9 10:01:04 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:01:04 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:01:04 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:01:04 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:01:04 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:01:04 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:01:04 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:40683 (port auto-assigned) fd 4 +Fri Jan 9 10:01:04 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:01:04 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:01:04 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:01:04 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:01:04 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:01:04 2026 - Python main interpreter initialized at 0x7dd050352d10 +Fri Jan 9 10:01:04 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:01:04 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:01:04 2026 - python threads support enabled +Fri Jan 9 10:01:04 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:01:04 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:01:04 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:01:04 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:01:05 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:01:05 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:01:05 2026 - WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x7dd050352d10 pid: 1782404 (default app) +Fri Jan 9 10:01:05 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:01:05 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:01:05 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:01:05 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:01:05 2026 - spawned uWSGI worker 1 (pid: 1807020, cores: 2) +Fri Jan 9 10:01:05 2026 - spawned uWSGI worker 2 (pid: 1807023, cores: 2) +Fri Jan 9 10:01:05 2026 - Python auto-reloader enabled +Fri Jan 9 10:01:05 2026 - spawned uWSGI http 1 (pid: 1807025) +Fri Jan 9 10:01:13 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:01:13 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:01:13 2026 - gateway "uWSGI http 1" has been buried (pid: 1807025) +Fri Jan 9 10:01:13 2026 - ...gracefully killing workers... +Fri Jan 9 10:01:13 2026 - Gracefully killing worker 1 (pid: 1807020)... +Fri Jan 9 10:01:13 2026 - Gracefully killing worker 2 (pid: 1807023)... +Fri Jan 9 10:01:14 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:01:14 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:01:14 2026 - binary reloading uWSGI... +Fri Jan 9 10:01:14 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:01:14 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:01:14 2026 - found fd 4 mapped to socket 0 (127.0.0.1:40683) +Fri Jan 9 10:01:14 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:01:14 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:01:14 2026] *** +Fri Jan 9 10:01:14 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:01:14 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:01:14 2026 - nodename: ubserver +Fri Jan 9 10:01:14 2026 - machine: x86_64 +Fri Jan 9 10:01:14 2026 - clock source: unix +Fri Jan 9 10:01:14 2026 - pcre jit disabled +Fri Jan 9 10:01:14 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:01:14 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:01:14 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:01:14 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:01:14 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:01:14 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:01:14 2026 - your processes number limit is 61306 +Fri Jan 9 10:01:14 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:01:14 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:01:14 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:01:14 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:01:14 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:01:14 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:01:14 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:44999 (port auto-assigned) fd 3 +Fri Jan 9 10:01:14 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:01:14 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:01:14 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:01:14 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:01:14 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:01:14 2026 - Python main interpreter initialized at 0x7eae0ff52d10 +Fri Jan 9 10:01:14 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:01:14 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:01:14 2026 - python threads support enabled +Fri Jan 9 10:01:14 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:01:14 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:01:14 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:01:14 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:01:14 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:01:14 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:01:14 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7eae0ff52d10 pid: 1782404 (default app) +Fri Jan 9 10:01:14 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:01:14 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:01:14 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:01:14 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:01:14 2026 - spawned uWSGI worker 1 (pid: 1807115, cores: 2) +Fri Jan 9 10:01:14 2026 - spawned uWSGI worker 2 (pid: 1807118, cores: 2) +Fri Jan 9 10:01:14 2026 - Python auto-reloader enabled +Fri Jan 9 10:01:14 2026 - spawned uWSGI http 1 (pid: 1807121) +Fri Jan 9 10:01:29 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:01:29 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:01:29 2026 - gateway "uWSGI http 1" has been buried (pid: 1807121) +Fri Jan 9 10:01:29 2026 - ...gracefully killing workers... +Fri Jan 9 10:01:29 2026 - Gracefully killing worker 2 (pid: 1807118)... +Fri Jan 9 10:01:29 2026 - Gracefully killing worker 1 (pid: 1807115)... +Fri Jan 9 10:01:30 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:01:30 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:01:30 2026 - binary reloading uWSGI... +Fri Jan 9 10:01:30 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:01:30 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:01:30 2026 - found fd 3 mapped to socket 0 (127.0.0.1:44999) +Fri Jan 9 10:01:30 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:01:30 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:01:30 2026] *** +Fri Jan 9 10:01:30 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:01:30 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:01:30 2026 - nodename: ubserver +Fri Jan 9 10:01:30 2026 - machine: x86_64 +Fri Jan 9 10:01:30 2026 - clock source: unix +Fri Jan 9 10:01:30 2026 - pcre jit disabled +Fri Jan 9 10:01:30 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:01:30 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:01:30 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:01:30 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:01:30 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:01:30 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:01:30 2026 - your processes number limit is 61306 +Fri Jan 9 10:01:30 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:01:30 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:01:30 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:01:30 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:01:30 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:01:30 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:01:30 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:46169 (port auto-assigned) fd 4 +Fri Jan 9 10:01:30 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:01:30 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:01:30 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:01:30 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:01:30 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:01:30 2026 - Python main interpreter initialized at 0x7a0e7a752d10 +Fri Jan 9 10:01:30 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:01:30 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:01:30 2026 - python threads support enabled +Fri Jan 9 10:01:30 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:01:30 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:01:30 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:01:30 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:01:30 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:01:30 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:01:30 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7a0e7a752d10 pid: 1782404 (default app) +Fri Jan 9 10:01:30 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:01:30 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:01:30 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:01:30 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:01:30 2026 - spawned uWSGI worker 1 (pid: 1807173, cores: 2) +Fri Jan 9 10:01:30 2026 - spawned uWSGI worker 2 (pid: 1807174, cores: 2) +Fri Jan 9 10:01:30 2026 - spawned uWSGI http 1 (pid: 1807177) +Fri Jan 9 10:01:30 2026 - Python auto-reloader enabled +2026-01-09 10:02:17 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:02:17 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: fl+xWhqaMMamwSp+ChWaJEvMtidFRZHUX4thfSYmtYqGtoWwkg... +2026-01-09 10:02:17 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 84c30ad0c256e1dc1766b83a7afdcc9e2452102b +2026-01-09 10:02:17 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 84c30ad0c256e1dc1766b83a7afdcc9e2452102b +2026-01-09 10:02:17 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:02:17 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:02:17 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:02:17 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 10:02:17 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 10:02:17 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 10:02:17 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 10:02:17 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 10:02:17 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 10:02:17 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:02:18 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:02:18 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:02:18 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:02:18 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:02:18 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 10:02:18 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:02:18 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:02:18 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:02:22 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:02:22 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: fl+xWhqaMMamwSp+ChWaJEvMtidFRZHUX4thfSYmtYqGtoWwkg... +2026-01-09 10:02:22 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 84c30ad0c256e1dc1766b83a7afdcc9e2452102b +2026-01-09 10:02:22 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 84c30ad0c256e1dc1766b83a7afdcc9e2452102b +2026-01-09 10:02:22 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:02:22 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:02:22 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:02:22 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 10:02:22 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 10:02:22 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 10:02:22 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 10:02:22 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 10:02:22 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 10:02:23 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:02:23 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:02:23 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:02:23 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:02:23 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:02:23 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 10:02:23 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:02:23 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:02:23 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:02:27 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:02:27 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: fl+xWhqaMMamwSp+ChWaJEvMtidFRZHUX4thfSYmtYqGtoWwkg... +2026-01-09 10:02:27 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 84c30ad0c256e1dc1766b83a7afdcc9e2452102b +2026-01-09 10:02:27 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 84c30ad0c256e1dc1766b83a7afdcc9e2452102b +2026-01-09 10:02:27 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:02:27 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:02:27 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:02:27 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 10:02:27 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 10:02:27 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 10:02:27 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:02:27 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:02:27 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:02:28 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:28 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 0.39秒 +2026-01-09 10:02:28 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:02:28 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:28 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.26秒 +2026-01-09 10:02:28 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:02:28 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:28 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 10:02:28 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:02:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:29 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:02:29 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:02:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:29 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:02:29 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:02:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:29 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 10:02:29 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:02:29 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:29 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.40秒 +2026-01-09 10:02:29 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:02:30 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:30 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:02:30 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:02:30 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:30 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:02:30 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:02:30 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:30 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:02:30 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:02:30 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:30 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:02:30 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:02:30 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:30 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:02:30 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:02:31 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:31 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:02:31 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:02:31 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:02:31 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:02:31 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 134 条公告 +2026-01-09 10:02:31 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 134 -> 2 条公告 +2026-01-09 10:02:31 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 2 -> 2 条公告 +2026-01-09 10:02:31 - gx_gp_monitor.main - INFO - 筛选后剩余 2 条公告 +2026-01-09 10:02:31 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:02:31 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 2, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 132, 'date_filtered': 1166, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='关于打印/复印纸的网上超市合同公告', publish_date=datetime.datetime(2026, 1, 9, 9, 53, 47), purchase_name='马山县卫生健康局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=TQ8JBxuEbH10KU93ffGNUQ==', source_code='ZcyAnnouncement7', source_name='电子卖场公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 2, 29, 544509), created_at=None, updated_at=None, content_hash='406c71dd23410b265f2776eef85bddc7', keyword_matched=True, date_filtered=True, is_new=True, is_today=True), Announcement(id=None, title='马山县疾病预防控制中心[2181801000007961838]马山县龙之都汽车服务有限公司2025-2026年马山县县本级预算单位公务车辆维修、保养服务框架协议采购的验收公告', publish_date=datetime.datetime(2026, 1, 9, 9, 33, 27), purchase_name='马山县疾病预防控制中心', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=MiIzDm+fgMeYY8CH5dIPRA==', source_code='ZcyAnnouncement10', source_name='履约验收公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 2, 29, 948741), created_at=None, updated_at=None, content_hash='f22c9ba4ff8375192b93c24e1a2901df', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +{address space usage: 250855424 bytes/239MB} {rss usage: 68419584 bytes/65MB} [pid: 1807174|app: 0|req: 2/1] 112.53.2.93 () {36 vars in 676 bytes} [Fri Jan 9 10:02:27 2026] POST /api/v1/wechat/callback?msg_signature=84c30ad0c256e1dc1766b83a7afdcc9e2452102b×tamp=1767924137&nonce=1768656856 => generated 710 bytes in 3221 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 1) +Fri Jan 9 10:02:47 2026 - *** HARAKIRI ON WORKER 1 (pid: 1807173, try: 1, graceful: yes) *** +Fri Jan 9 10:02:47 2026 - HARAKIRI !!! worker 1 status !!! +Fri Jan 9 10:02:47 2026 - HARAKIRI [core 0] 183.47.98.227 - POST /api/v1/wechat/callback?msg_signature=84c30ad0c256e1dc1766b83a7afdcc9e2452102b×tamp=1767924137&nonce=1768656856 since 1767924137 +Fri Jan 9 10:02:47 2026 - HARAKIRI !!! end of worker 1 status !!! +Fri Jan 9 10:02:47 2026 - HARAKIRI triggered by worker 1 core 0 !!! +Fri Jan 9 10:02:48 2026 - DAMN ! worker 1 (pid: 1807173) died, killed by signal 9 :( trying respawn ... +Fri Jan 9 10:02:48 2026 - Respawned uWSGI worker 1 (new pid: 1807577) +Fri Jan 9 10:02:48 2026 - Python auto-reloader enabled +2026-01-09 10:02:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:53 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.41秒 +2026-01-09 10:02:53 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:02:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:53 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 10:02:53 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:02:53 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:53 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:02:53 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:02:54 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:54 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 10:02:54 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:02:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:55 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.89秒 +2026-01-09 10:02:55 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:02:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:55 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:02:55 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:02:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:55 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.42秒 +2026-01-09 10:02:55 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:02:55 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:55 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:02:55 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:02:56 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:56 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:02:56 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:02:56 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:56 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:02:56 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:02:56 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:56 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:02:56 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:02:56 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:56 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.29秒 +2026-01-09 10:02:56 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:02:57 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:02:57 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:02:57 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:02:57 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:02:57 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:02:57 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 135 条公告 +2026-01-09 10:02:57 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 135 -> 2 条公告 +2026-01-09 10:02:57 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 2 -> 2 条公告 +2026-01-09 10:02:57 - gx_gp_monitor.main - INFO - 筛选后剩余 2 条公告 +2026-01-09 10:02:57 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:02:57 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 2, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 133, 'date_filtered': 1165, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='关于打印/复印纸的网上超市合同公告', publish_date=datetime.datetime(2026, 1, 9, 9, 53, 47), purchase_name='马山县卫生健康局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=TQ8JBxuEbH10KU93ffGNUQ==', source_code='ZcyAnnouncement7', source_name='电子卖场公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 2, 55, 251692), created_at=None, updated_at=None, content_hash='406c71dd23410b265f2776eef85bddc7', keyword_matched=True, date_filtered=True, is_new=True, is_today=True), Announcement(id=None, title='马山县疾病预防控制中心[2181801000007961838]马山县龙之都汽车服务有限公司2025-2026年马山县县本级预算单位公务车辆维修、保养服务框架协议采购的验收公告', publish_date=datetime.datetime(2026, 1, 9, 9, 33, 27), purchase_name='马山县疾病预防控制中心', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=MiIzDm+fgMeYY8CH5dIPRA==', source_code='ZcyAnnouncement10', source_name='履约验收公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 2, 55, 671160), created_at=None, updated_at=None, content_hash='f22c9ba4ff8375192b93c24e1a2901df', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +{address space usage: 243552256 bytes/232MB} {rss usage: 61341696 bytes/58MB} [pid: 1807174|app: 0|req: 2/2] 106.55.202.215 () {36 vars in 679 bytes} [Fri Jan 9 10:02:22 2026] POST /api/v1/wechat/callback?msg_signature=84c30ad0c256e1dc1766b83a7afdcc9e2452102b×tamp=1767924137&nonce=1768656856 => generated 710 bytes in 34214 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 0) +2026-01-09 10:09:36 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:09:36 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: 5DXzoSk72rLPjWkQPcghu1KqCusBzSYPZGb4sg1eEU8I08mw4c... +2026-01-09 10:09:36 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 545f8abd520fa65851b3da066d1d47be9c61b45c +2026-01-09 10:09:36 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 545f8abd520fa65851b3da066d1d47be9c61b45c +2026-01-09 10:09:36 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:09:36 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:09:36 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:09:36 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=大化..., user=WeiJueSen +2026-01-09 10:09:36 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: WeiJueSen +2026-01-09 10:09:36 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['大化'] +2026-01-09 10:09:36 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:09:37 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:09:37 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:09:37 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:09:41 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:09:41 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: 5DXzoSk72rLPjWkQPcghu1KqCusBzSYPZGb4sg1eEU8I08mw4c... +2026-01-09 10:09:41 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 545f8abd520fa65851b3da066d1d47be9c61b45c +2026-01-09 10:09:41 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 545f8abd520fa65851b3da066d1d47be9c61b45c +2026-01-09 10:09:41 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:09:41 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:09:41 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:09:41 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=大化..., user=WeiJueSen +2026-01-09 10:09:41 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: WeiJueSen +2026-01-09 10:09:41 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['大化'] +2026-01-09 10:09:41 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 10:09:41 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 10:09:41 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 10:09:42 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:09:42 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:09:42 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:09:42 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:09:42 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:09:42 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 10:09:42 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:09:42 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:09:42 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:09:42 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:42 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 0.37秒 +2026-01-09 10:09:42 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:09:42 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:42 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:09:42 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:09:42 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:42 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:09:42 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:09:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:43 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:09:43 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:09:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:43 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:09:43 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:09:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:43 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 10:09:43 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:09:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:43 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.32秒 +2026-01-09 10:09:43 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:09:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:44 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.26秒 +2026-01-09 10:09:44 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:09:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:44 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:09:44 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:09:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:44 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:09:44 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:09:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:44 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:09:44 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:09:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:44 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:09:44 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:09:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:09:45 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:09:45 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:09:45 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:09:45 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:09:45 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 147 条公告 +2026-01-09 10:09:45 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 147 -> 0 条公告 +2026-01-09 10:09:45 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 0 -> 0 条公告 +2026-01-09 10:09:45 - gx_gp_monitor.main - INFO - 筛选后剩余 0 条公告 +2026-01-09 10:09:45 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:09:45 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 0, 'saved': 0, 'markdown_generated': False, 'notification_sent': False, 'filter_stats': {'keyword_filtered': 147, 'date_filtered': 1153, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': []} +{address space usage: 240259072 bytes/229MB} {rss usage: 52899840 bytes/50MB} [pid: 1807577|app: 0|req: 2/3] 106.55.202.215 () {36 vars in 679 bytes} [Fri Jan 9 10:09:41 2026] POST /api/v1/wechat/callback?msg_signature=545f8abd520fa65851b3da066d1d47be9c61b45c×tamp=1767924576&nonce=1768748800 => generated 798 bytes in 3164 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 0) +2026-01-09 10:09:57 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:09:57 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: EV/PxbQk0Wr980DlO57RfvBpRIvjlxPWion7LkljkQDVheF4pF... +2026-01-09 10:09:57 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 970dc8e6b91fb5479eb69edcabd6f966f6225465 +2026-01-09 10:09:57 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 970dc8e6b91fb5479eb69edcabd6f966f6225465 +2026-01-09 10:09:57 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:09:57 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:09:57 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 10:09:57 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=latest_news, user=WeiJueSen +2026-01-09 10:09:57 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: latest_news, user: WeiJueSen +2026-01-09 10:09:57 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求最新公告 +{address space usage: 254078976 bytes/242MB} {rss usage: 71958528 bytes/68MB} [pid: 1807174|app: 0|req: 4/4] 183.47.98.227 () {36 vars in 678 bytes} [Fri Jan 9 10:09:57 2026] POST /api/v1/wechat/callback?msg_signature=970dc8e6b91fb5479eb69edcabd6f966f6225465×tamp=1767924597&nonce=1767910694 => generated 343198 bytes in 32 msecs (HTTP/1.1 200) 2 headers in 83 bytes (1 switches on core 0) +2026-01-09 10:10:07 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:07 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.46秒 +2026-01-09 10:10:07 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:10:07 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:07 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 10:10:07 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:10:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:08 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:10:08 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:10:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:08 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:10:08 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:10:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:08 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:10:08 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:10:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:08 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:10:08 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:10:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:08 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.32秒 +2026-01-09 10:10:08 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:10:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:09 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:10:09 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:10:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:09 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:10:09 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:10:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:09 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.15秒 +2026-01-09 10:10:09 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:10:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:09 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:10:09 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:10:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:09 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:10:09 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:10:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:10:10 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:10:10 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:10:10 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:10:10 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:10:10 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 149 条公告 +2026-01-09 10:10:10 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 149 -> 0 条公告 +2026-01-09 10:10:10 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 0 -> 0 条公告 +2026-01-09 10:10:10 - gx_gp_monitor.main - INFO - 筛选后剩余 0 条公告 +2026-01-09 10:10:10 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:10:10 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 0, 'saved': 0, 'markdown_generated': False, 'notification_sent': False, 'filter_stats': {'keyword_filtered': 149, 'date_filtered': 1151, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': []} +{address space usage: 247787520 bytes/236MB} {rss usage: 60436480 bytes/57MB} [pid: 1807174|app: 0|req: 4/5] 14.116.241.251 () {36 vars in 679 bytes} [Fri Jan 9 10:09:36 2026] POST /api/v1/wechat/callback?msg_signature=545f8abd520fa65851b3da066d1d47be9c61b45c×tamp=1767924576&nonce=1768748800 => generated 798 bytes in 33166 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 1) +2026-01-09 10:25:42 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:25:42 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: 7oYpd6+5fsif46fnY3VTPqPcdhC2dlaybw3TzI3H44K2DFDpGL... +2026-01-09 10:25:42 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 0cb188a04afb33504e72c7cad29ac0e1050a5d49 +2026-01-09 10:25:42 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 0cb188a04afb33504e72c7cad29ac0e1050a5d49 +2026-01-09 10:25:42 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:25:42 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:25:42 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 10:25:42 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=today_stats, user=WeiJueSen +2026-01-09 10:25:42 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: today_stats, user: WeiJueSen +2026-01-09 10:25:42 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求今日统计 +{address space usage: 240259072 bytes/229MB} {rss usage: 52899840 bytes/50MB} [pid: 1807577|app: 0|req: 3/6] 183.47.98.168 () {36 vars in 678 bytes} [Fri Jan 9 10:25:42 2026] POST /api/v1/wechat/callback?msg_signature=0cb188a04afb33504e72c7cad29ac0e1050a5d49×tamp=1767925542&nonce=1768148594 => generated 966 bytes in 5 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 1) +2026-01-09 10:26:11 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:26:11 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: zEWl1m4Dcc4egm7eYKtlGk5Qxl/3qanWwWJBr1lrnBUigFykbr... +2026-01-09 10:26:11 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 79e58abff8031c45f7d7639552e7e693239370b0 +2026-01-09 10:26:11 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 79e58abff8031c45f7d7639552e7e693239370b0 +2026-01-09 10:26:11 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:26:11 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:26:11 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:26:11 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 10:26:11 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 10:26:11 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 10:26:11 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:26:11 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:26:11 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:26:11 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:26:12 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:12 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 0.52秒 +2026-01-09 10:26:12 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:26:12 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:12 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:26:12 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:26:12 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:12 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:26:12 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:26:12 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:12 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:26:12 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:26:13 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:13 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:26:13 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:26:13 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:13 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:26:13 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:26:13 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:13 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.33秒 +2026-01-09 10:26:13 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:26:13 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:13 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:26:13 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:26:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:14 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:26:14 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:26:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:14 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:26:14 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:26:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:14 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:26:14 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:26:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:14 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:26:14 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:26:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:26:14 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 10:26:14 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:26:14 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:26:14 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:26:14 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 175 条公告 +2026-01-09 10:26:14 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 175 -> 2 条公告 +2026-01-09 10:26:14 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 2 -> 2 条公告 +2026-01-09 10:26:14 - gx_gp_monitor.main - INFO - 筛选后剩余 2 条公告 +2026-01-09 10:26:14 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:26:14 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 2, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 173, 'date_filtered': 1125, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='关于打印/复印纸的网上超市合同公告', publish_date=datetime.datetime(2026, 1, 9, 9, 53, 47), purchase_name='马山县卫生健康局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=TQ8JBxuEbH10KU93ffGNUQ==', source_code='ZcyAnnouncement7', source_name='电子卖场公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 26, 13, 304523), created_at=None, updated_at=None, content_hash='406c71dd23410b265f2776eef85bddc7', keyword_matched=True, date_filtered=True, is_new=True, is_today=True), Announcement(id=None, title='马山县疾病预防控制中心[2181801000007961838]马山县龙之都汽车服务有限公司2025-2026年马山县县本级预算单位公务车辆维修、保养服务框架协议采购的验收公告', publish_date=datetime.datetime(2026, 1, 9, 9, 33, 27), purchase_name='马山县疾病预防控制中心', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=MiIzDm+fgMeYY8CH5dIPRA==', source_code='ZcyAnnouncement10', source_name='履约验收公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 26, 13, 633593), created_at=None, updated_at=None, content_hash='f22c9ba4ff8375192b93c24e1a2901df', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +{address space usage: 248066048 bytes/236MB} {rss usage: 61984768 bytes/59MB} [pid: 1807174|app: 0|req: 5/7] 183.47.117.101 () {36 vars in 679 bytes} [Fri Jan 9 10:26:11 2026] POST /api/v1/wechat/callback?msg_signature=79e58abff8031c45f7d7639552e7e693239370b0×tamp=1767925571&nonce=1768415184 => generated 710 bytes in 3234 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 0) +Fri Jan 9 10:26:39 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:26:39 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:26:39 2026 - gateway "uWSGI http 1" has been buried (pid: 1807177) +Fri Jan 9 10:26:39 2026 - ...gracefully killing workers... +Fri Jan 9 10:26:39 2026 - Gracefully killing worker 2 (pid: 1807174)... +Fri Jan 9 10:26:39 2026 - Gracefully killing worker 1 (pid: 1807577)... +Fri Jan 9 10:26:40 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:26:40 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:26:40 2026 - binary reloading uWSGI... +Fri Jan 9 10:26:40 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:26:40 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:26:40 2026 - found fd 4 mapped to socket 0 (127.0.0.1:46169) +Fri Jan 9 10:26:40 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:26:40 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:26:40 2026] *** +Fri Jan 9 10:26:40 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:26:40 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:26:40 2026 - nodename: ubserver +Fri Jan 9 10:26:40 2026 - machine: x86_64 +Fri Jan 9 10:26:40 2026 - clock source: unix +Fri Jan 9 10:26:40 2026 - pcre jit disabled +Fri Jan 9 10:26:40 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:26:40 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:26:40 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:26:40 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:26:40 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:26:40 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:26:40 2026 - your processes number limit is 61306 +Fri Jan 9 10:26:40 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:26:40 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:26:40 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:26:40 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:26:40 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:26:40 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:26:40 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:33603 (port auto-assigned) fd 3 +Fri Jan 9 10:26:40 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:26:40 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:26:40 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:26:40 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:26:40 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:26:40 2026 - Python main interpreter initialized at 0x7ff54c352d10 +Fri Jan 9 10:26:40 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:26:40 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:26:40 2026 - python threads support enabled +Fri Jan 9 10:26:40 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:26:40 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:26:40 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:26:40 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:26:40 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:26:40 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:26:40 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7ff54c352d10 pid: 1782404 (default app) +Fri Jan 9 10:26:40 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:26:40 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:26:40 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:26:40 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:26:40 2026 - spawned uWSGI worker 1 (pid: 1815128, cores: 2) +Fri Jan 9 10:26:40 2026 - spawned uWSGI worker 2 (pid: 1815129, cores: 2) +Fri Jan 9 10:26:40 2026 - spawned uWSGI http 1 (pid: 1815134) +Fri Jan 9 10:26:40 2026 - Python auto-reloader enabled +Fri Jan 9 10:26:58 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:26:58 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:26:58 2026 - gateway "uWSGI http 1" has been buried (pid: 1815134) +Fri Jan 9 10:26:58 2026 - ...gracefully killing workers... +Fri Jan 9 10:26:58 2026 - Gracefully killing worker 1 (pid: 1815128)... +Fri Jan 9 10:26:58 2026 - Gracefully killing worker 2 (pid: 1815129)... +Fri Jan 9 10:26:59 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:26:59 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:26:59 2026 - binary reloading uWSGI... +Fri Jan 9 10:26:59 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:26:59 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:26:59 2026 - found fd 3 mapped to socket 0 (127.0.0.1:33603) +Fri Jan 9 10:26:59 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:26:59 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:26:59 2026] *** +Fri Jan 9 10:26:59 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:26:59 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:26:59 2026 - nodename: ubserver +Fri Jan 9 10:26:59 2026 - machine: x86_64 +Fri Jan 9 10:26:59 2026 - clock source: unix +Fri Jan 9 10:26:59 2026 - pcre jit disabled +Fri Jan 9 10:26:59 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:26:59 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:26:59 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:26:59 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:26:59 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:26:59 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:26:59 2026 - your processes number limit is 61306 +Fri Jan 9 10:26:59 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:26:59 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:26:59 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:26:59 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:26:59 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:26:59 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:26:59 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:34087 (port auto-assigned) fd 4 +Fri Jan 9 10:26:59 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:26:59 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:26:59 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:26:59 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:26:59 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:26:59 2026 - Python main interpreter initialized at 0x70eb6dd52d10 +Fri Jan 9 10:26:59 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:26:59 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:26:59 2026 - python threads support enabled +Fri Jan 9 10:26:59 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:26:59 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:26:59 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:26:59 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:26:59 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:26:59 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:26:59 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x70eb6dd52d10 pid: 1782404 (default app) +Fri Jan 9 10:26:59 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:26:59 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:26:59 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:26:59 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:26:59 2026 - spawned uWSGI worker 1 (pid: 1815194, cores: 2) +Fri Jan 9 10:26:59 2026 - spawned uWSGI worker 2 (pid: 1815197, cores: 2) +Fri Jan 9 10:26:59 2026 - spawned uWSGI http 1 (pid: 1815198) +Fri Jan 9 10:26:59 2026 - Python auto-reloader enabled +Fri Jan 9 10:27:10 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:27:10 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:27:10 2026 - gateway "uWSGI http 1" has been buried (pid: 1815198) +Fri Jan 9 10:27:10 2026 - ...gracefully killing workers... +Fri Jan 9 10:27:10 2026 - Gracefully killing worker 1 (pid: 1815194)... +Fri Jan 9 10:27:10 2026 - Gracefully killing worker 2 (pid: 1815197)... +Fri Jan 9 10:27:11 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:27:11 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:27:11 2026 - binary reloading uWSGI... +Fri Jan 9 10:27:11 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:27:11 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:27:11 2026 - found fd 4 mapped to socket 0 (127.0.0.1:34087) +Fri Jan 9 10:27:11 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:27:11 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:27:11 2026] *** +Fri Jan 9 10:27:11 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:27:11 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:27:11 2026 - nodename: ubserver +Fri Jan 9 10:27:11 2026 - machine: x86_64 +Fri Jan 9 10:27:11 2026 - clock source: unix +Fri Jan 9 10:27:11 2026 - pcre jit disabled +Fri Jan 9 10:27:11 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:27:11 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:27:11 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:27:11 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:27:11 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:27:11 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:27:11 2026 - your processes number limit is 61306 +Fri Jan 9 10:27:11 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:27:11 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:27:11 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:27:11 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:27:11 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:27:11 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:27:11 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:34323 (port auto-assigned) fd 3 +Fri Jan 9 10:27:11 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:27:11 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:27:11 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:27:11 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:27:11 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:27:11 2026 - Python main interpreter initialized at 0x75f740b52d10 +Fri Jan 9 10:27:11 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:27:11 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:27:11 2026 - python threads support enabled +Fri Jan 9 10:27:11 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:27:11 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:27:11 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:27:11 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:27:11 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:27:11 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:27:11 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x75f740b52d10 pid: 1782404 (default app) +Fri Jan 9 10:27:11 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:27:11 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:27:11 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:27:11 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:27:11 2026 - spawned uWSGI worker 1 (pid: 1815286, cores: 2) +Fri Jan 9 10:27:11 2026 - spawned uWSGI worker 2 (pid: 1815287, cores: 2) +Fri Jan 9 10:27:11 2026 - spawned uWSGI http 1 (pid: 1815291) +Fri Jan 9 10:27:11 2026 - Python auto-reloader enabled +Fri Jan 9 10:27:55 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:27:55 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:27:55 2026 - gateway "uWSGI http 1" has been buried (pid: 1815291) +Fri Jan 9 10:27:55 2026 - ...gracefully killing workers... +Fri Jan 9 10:27:55 2026 - Gracefully killing worker 2 (pid: 1815287)... +Fri Jan 9 10:27:55 2026 - Gracefully killing worker 1 (pid: 1815286)... +Fri Jan 9 10:27:56 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:27:56 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:27:56 2026 - binary reloading uWSGI... +Fri Jan 9 10:27:56 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:27:56 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:27:56 2026 - found fd 3 mapped to socket 0 (127.0.0.1:34323) +Fri Jan 9 10:27:56 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:27:56 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:27:56 2026] *** +Fri Jan 9 10:27:56 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:27:56 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:27:56 2026 - nodename: ubserver +Fri Jan 9 10:27:56 2026 - machine: x86_64 +Fri Jan 9 10:27:56 2026 - clock source: unix +Fri Jan 9 10:27:56 2026 - pcre jit disabled +Fri Jan 9 10:27:56 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:27:56 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:27:56 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:27:56 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:27:56 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:27:56 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:27:56 2026 - your processes number limit is 61306 +Fri Jan 9 10:27:56 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:27:56 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:27:56 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:27:56 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:27:56 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:27:56 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:27:56 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:37353 (port auto-assigned) fd 4 +Fri Jan 9 10:27:56 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:27:56 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:27:56 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:27:56 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:27:56 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:27:56 2026 - Python main interpreter initialized at 0x70c237752d10 +Fri Jan 9 10:27:56 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:27:56 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:27:56 2026 - python threads support enabled +Fri Jan 9 10:27:56 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:27:56 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:27:56 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:27:56 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:27:57 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:27:57 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:27:57 2026 - WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x70c237752d10 pid: 1782404 (default app) +Fri Jan 9 10:27:57 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:27:57 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:27:57 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:27:57 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:27:57 2026 - spawned uWSGI worker 1 (pid: 1817209, cores: 2) +Fri Jan 9 10:27:57 2026 - spawned uWSGI worker 2 (pid: 1817210, cores: 2) +Fri Jan 9 10:27:57 2026 - spawned uWSGI http 1 (pid: 1817215) +Fri Jan 9 10:27:57 2026 - Python auto-reloader enabled +2026-01-09 10:28:19 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:28:19 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: YS7RBuNL221aid+SSC+nfDV0AAkZe5xnflVEtA7MzaK+UyqoW9... +2026-01-09 10:28:19 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 1f8d0c119a8bcbf6913ed06e9991c3166b6bbb18 +2026-01-09 10:28:19 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 1f8d0c119a8bcbf6913ed06e9991c3166b6bbb18 +2026-01-09 10:28:19 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:28:19 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:28:19 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 10:28:19 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=latest_news, user=WeiJueSen +2026-01-09 10:28:19 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: latest_news, user: WeiJueSen +2026-01-09 10:28:19 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求最新公告 +{address space usage: 233709568 bytes/222MB} {rss usage: 38821888 bytes/37MB} [pid: 1817210|app: 0|req: 1/1] 183.47.98.227 () {36 vars in 677 bytes} [Fri Jan 9 10:28:19 2026] POST /api/v1/wechat/callback?msg_signature=1f8d0c119a8bcbf6913ed06e9991c3166b6bbb18×tamp=1767925699&nonce=1768209024 => generated 1394 bytes in 6 msecs (HTTP/1.1 200) 2 headers in 81 bytes (1 switches on core 0) +2026-01-09 10:28:25 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 428 +2026-01-09 10:28:25 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: zozV9O7eNAXcdK29PH30oG9UiS7hzONGFKXLc8G2pk0fhAFnIz... +2026-01-09 10:28:25 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 10442844f4f723747edcf1925bed5e7903432b59 +2026-01-09 10:28:25 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 10442844f4f723747edcf1925bed5e7903432b59 +2026-01-09 10:28:25 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:28:25 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:28:25 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:28:25 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=1..., user=WeiJueSen +2026-01-09 10:28:25 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 1, user: WeiJueSen +2026-01-09 10:28:25 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 选择公告来源: 1 +2026-01-09 10:28:25 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +{address space usage: 239050752 bytes/227MB} {rss usage: 48840704 bytes/46MB} [pid: 1817209|app: 0|req: 1/2] 14.116.241.251 () {36 vars in 679 bytes} [Fri Jan 9 10:28:25 2026] POST /api/v1/wechat/callback?msg_signature=10442844f4f723747edcf1925bed5e7903432b59×tamp=1767925705&nonce=1768668050 => generated 2502 bytes in 69 msecs (HTTP/1.1 200) 2 headers in 81 bytes (1 switches on core 0) +Fri Jan 9 10:28:49 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:28:49 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:28:49 2026 - gateway "uWSGI http 1" has been buried (pid: 1817215) +Fri Jan 9 10:28:49 2026 - ...gracefully killing workers... +Fri Jan 9 10:28:49 2026 - Gracefully killing worker 1 (pid: 1817209)... +Fri Jan 9 10:28:49 2026 - Gracefully killing worker 2 (pid: 1817210)... +Fri Jan 9 10:28:50 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:28:50 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:28:50 2026 - binary reloading uWSGI... +Fri Jan 9 10:28:50 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:28:50 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:28:50 2026 - found fd 4 mapped to socket 0 (127.0.0.1:37353) +Fri Jan 9 10:28:50 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:28:50 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:28:50 2026] *** +Fri Jan 9 10:28:50 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:28:50 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:28:50 2026 - nodename: ubserver +Fri Jan 9 10:28:50 2026 - machine: x86_64 +Fri Jan 9 10:28:50 2026 - clock source: unix +Fri Jan 9 10:28:50 2026 - pcre jit disabled +Fri Jan 9 10:28:50 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:28:50 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:28:50 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:28:50 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:28:50 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:28:50 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:28:50 2026 - your processes number limit is 61306 +Fri Jan 9 10:28:50 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:28:50 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:28:50 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:28:50 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:28:50 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:28:50 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:28:50 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:40261 (port auto-assigned) fd 3 +Fri Jan 9 10:28:50 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:28:50 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:28:50 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:28:50 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:28:50 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:28:50 2026 - Python main interpreter initialized at 0x77f978f52d10 +Fri Jan 9 10:28:50 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:28:50 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:28:50 2026 - python threads support enabled +Fri Jan 9 10:28:50 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:28:50 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:28:50 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:28:50 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:28:50 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:28:50 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:28:50 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x77f978f52d10 pid: 1782404 (default app) +Fri Jan 9 10:28:50 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:28:50 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:28:50 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:28:50 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:28:50 2026 - spawned uWSGI worker 1 (pid: 1817590, cores: 2) +Fri Jan 9 10:28:50 2026 - spawned uWSGI worker 2 (pid: 1817591, cores: 2) +Fri Jan 9 10:28:50 2026 - spawned uWSGI http 1 (pid: 1817594) +Fri Jan 9 10:28:50 2026 - Python auto-reloader enabled +Fri Jan 9 10:32:28 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:32:28 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:32:28 2026 - gateway "uWSGI http 1" has been buried (pid: 1817594) +Fri Jan 9 10:32:28 2026 - ...gracefully killing workers... +Fri Jan 9 10:32:28 2026 - Gracefully killing worker 2 (pid: 1817591)... +Fri Jan 9 10:32:28 2026 - Gracefully killing worker 1 (pid: 1817590)... +Fri Jan 9 10:32:29 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:32:29 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:32:29 2026 - binary reloading uWSGI... +Fri Jan 9 10:32:29 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:32:29 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:32:29 2026 - found fd 3 mapped to socket 0 (127.0.0.1:40261) +Fri Jan 9 10:32:29 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:32:29 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:32:29 2026] *** +Fri Jan 9 10:32:29 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:32:29 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:32:29 2026 - nodename: ubserver +Fri Jan 9 10:32:29 2026 - machine: x86_64 +Fri Jan 9 10:32:29 2026 - clock source: unix +Fri Jan 9 10:32:29 2026 - pcre jit disabled +Fri Jan 9 10:32:29 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:32:29 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:32:29 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:32:29 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:32:29 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:32:29 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:32:29 2026 - your processes number limit is 61306 +Fri Jan 9 10:32:29 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:32:29 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:32:29 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:32:29 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:32:29 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:32:29 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:32:29 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:34655 (port auto-assigned) fd 4 +Fri Jan 9 10:32:29 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:32:29 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:32:29 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:32:29 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:32:29 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:32:29 2026 - Python main interpreter initialized at 0x7d3c1a752d10 +Fri Jan 9 10:32:29 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:32:29 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:32:29 2026 - python threads support enabled +Fri Jan 9 10:32:29 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:32:29 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:32:29 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:32:29 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:32:29 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:32:29 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:32:29 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7d3c1a752d10 pid: 1782404 (default app) +Fri Jan 9 10:32:29 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:32:29 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:32:29 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:32:29 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:32:29 2026 - spawned uWSGI worker 1 (pid: 1818793, cores: 2) +Fri Jan 9 10:32:29 2026 - spawned uWSGI worker 2 (pid: 1818794, cores: 2) +Fri Jan 9 10:32:29 2026 - spawned uWSGI http 1 (pid: 1818798) +Fri Jan 9 10:32:29 2026 - Python auto-reloader enabled +Fri Jan 9 10:32:33 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:32:33 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:32:33 2026 - gateway "uWSGI http 1" has been buried (pid: 1818798) +Fri Jan 9 10:32:33 2026 - ...gracefully killing workers... +Fri Jan 9 10:32:33 2026 - Gracefully killing worker 1 (pid: 1818793)... +Fri Jan 9 10:32:33 2026 - Gracefully killing worker 2 (pid: 1818794)... +Fri Jan 9 10:32:34 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:32:34 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:32:34 2026 - binary reloading uWSGI... +Fri Jan 9 10:32:34 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:32:34 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:32:34 2026 - found fd 4 mapped to socket 0 (127.0.0.1:34655) +Fri Jan 9 10:32:34 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:32:34 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:32:34 2026] *** +Fri Jan 9 10:32:34 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:32:34 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:32:34 2026 - nodename: ubserver +Fri Jan 9 10:32:34 2026 - machine: x86_64 +Fri Jan 9 10:32:34 2026 - clock source: unix +Fri Jan 9 10:32:34 2026 - pcre jit disabled +Fri Jan 9 10:32:34 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:32:34 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:32:34 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:32:34 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:32:34 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:32:34 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:32:34 2026 - your processes number limit is 61306 +Fri Jan 9 10:32:34 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:32:34 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:32:34 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:32:34 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:32:34 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:32:34 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:32:34 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:38431 (port auto-assigned) fd 3 +Fri Jan 9 10:32:34 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:32:34 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:32:34 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:32:34 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:32:34 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:32:34 2026 - Python main interpreter initialized at 0x760172f52d10 +Fri Jan 9 10:32:34 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:32:34 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:32:34 2026 - python threads support enabled +Fri Jan 9 10:32:34 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:32:34 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:32:34 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:32:34 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:32:34 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:32:34 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:32:34 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x760172f52d10 pid: 1782404 (default app) +Fri Jan 9 10:32:34 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:32:34 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:32:34 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:32:34 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:32:34 2026 - spawned uWSGI worker 1 (pid: 1818808, cores: 2) +Fri Jan 9 10:32:34 2026 - spawned uWSGI worker 2 (pid: 1818809, cores: 2) +Fri Jan 9 10:32:34 2026 - spawned uWSGI http 1 (pid: 1818812) +Fri Jan 9 10:32:34 2026 - Python auto-reloader enabled +Fri Jan 9 10:32:38 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:32:38 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:32:38 2026 - gateway "uWSGI http 1" has been buried (pid: 1818812) +Fri Jan 9 10:32:38 2026 - ...gracefully killing workers... +Fri Jan 9 10:32:38 2026 - Gracefully killing worker 1 (pid: 1818808)... +Fri Jan 9 10:32:38 2026 - Gracefully killing worker 2 (pid: 1818809)... +Fri Jan 9 10:32:39 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:32:39 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:32:39 2026 - binary reloading uWSGI... +Fri Jan 9 10:32:39 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:32:39 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:32:39 2026 - found fd 3 mapped to socket 0 (127.0.0.1:38431) +Fri Jan 9 10:32:39 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:32:39 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:32:39 2026] *** +Fri Jan 9 10:32:39 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:32:39 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:32:39 2026 - nodename: ubserver +Fri Jan 9 10:32:39 2026 - machine: x86_64 +Fri Jan 9 10:32:39 2026 - clock source: unix +Fri Jan 9 10:32:39 2026 - pcre jit disabled +Fri Jan 9 10:32:39 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:32:39 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:32:39 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:32:39 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:32:39 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:32:39 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:32:39 2026 - your processes number limit is 61306 +Fri Jan 9 10:32:39 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:32:39 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:32:39 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:32:39 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:32:39 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:32:39 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:32:39 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:41473 (port auto-assigned) fd 4 +Fri Jan 9 10:32:39 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:32:39 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:32:39 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:32:39 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:32:39 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:32:39 2026 - Python main interpreter initialized at 0x79b9d4152d10 +Fri Jan 9 10:32:39 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:32:39 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:32:39 2026 - python threads support enabled +Fri Jan 9 10:32:39 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:32:39 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:32:39 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:32:39 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:32:40 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:32:40 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:32:40 2026 - WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x79b9d4152d10 pid: 1782404 (default app) +Fri Jan 9 10:32:40 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:32:40 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:32:40 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:32:40 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:32:40 2026 - spawned uWSGI worker 1 (pid: 1818826, cores: 2) +Fri Jan 9 10:32:40 2026 - spawned uWSGI worker 2 (pid: 1818827, cores: 2) +Fri Jan 9 10:32:40 2026 - spawned uWSGI http 1 (pid: 1818831) +Fri Jan 9 10:32:40 2026 - Python auto-reloader enabled +Fri Jan 9 10:32:44 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:32:44 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:32:44 2026 - gateway "uWSGI http 1" has been buried (pid: 1818831) +Fri Jan 9 10:32:44 2026 - ...gracefully killing workers... +Fri Jan 9 10:32:44 2026 - Gracefully killing worker 2 (pid: 1818827)... +Fri Jan 9 10:32:44 2026 - Gracefully killing worker 1 (pid: 1818826)... +Fri Jan 9 10:32:45 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:32:45 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:32:45 2026 - binary reloading uWSGI... +Fri Jan 9 10:32:45 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:32:45 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:32:45 2026 - found fd 4 mapped to socket 0 (127.0.0.1:41473) +Fri Jan 9 10:32:45 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:32:45 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:32:45 2026] *** +Fri Jan 9 10:32:45 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:32:45 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:32:45 2026 - nodename: ubserver +Fri Jan 9 10:32:45 2026 - machine: x86_64 +Fri Jan 9 10:32:45 2026 - clock source: unix +Fri Jan 9 10:32:45 2026 - pcre jit disabled +Fri Jan 9 10:32:45 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:32:45 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:32:45 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:32:45 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:32:45 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:32:45 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:32:45 2026 - your processes number limit is 61306 +Fri Jan 9 10:32:45 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:32:45 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:32:45 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:32:45 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:32:45 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:32:45 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:32:45 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:45769 (port auto-assigned) fd 3 +Fri Jan 9 10:32:45 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:32:45 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:32:45 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:32:45 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:32:45 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:32:45 2026 - Python main interpreter initialized at 0x7a69a6152d10 +Fri Jan 9 10:32:45 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:32:45 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:32:45 2026 - python threads support enabled +Fri Jan 9 10:32:45 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:32:45 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:32:45 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:32:45 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:32:45 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:32:45 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:32:45 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7a69a6152d10 pid: 1782404 (default app) +Fri Jan 9 10:32:45 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:32:45 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:32:45 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:32:45 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:32:45 2026 - spawned uWSGI worker 1 (pid: 1818869, cores: 2) +Fri Jan 9 10:32:45 2026 - spawned uWSGI worker 2 (pid: 1818870, cores: 2) +Fri Jan 9 10:32:45 2026 - spawned uWSGI http 1 (pid: 1818873) +Fri Jan 9 10:32:45 2026 - Python auto-reloader enabled +Fri Jan 9 10:33:09 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:33:09 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:33:09 2026 - gateway "uWSGI http 1" has been buried (pid: 1818873) +Fri Jan 9 10:33:09 2026 - ...gracefully killing workers... +Fri Jan 9 10:33:09 2026 - Gracefully killing worker 2 (pid: 1818870)... +Fri Jan 9 10:33:09 2026 - Gracefully killing worker 1 (pid: 1818869)... +Fri Jan 9 10:33:10 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:33:10 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:33:10 2026 - binary reloading uWSGI... +Fri Jan 9 10:33:10 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:33:10 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:33:10 2026 - found fd 3 mapped to socket 0 (127.0.0.1:45769) +Fri Jan 9 10:33:10 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:33:10 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:33:10 2026] *** +Fri Jan 9 10:33:10 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:33:10 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:33:10 2026 - nodename: ubserver +Fri Jan 9 10:33:10 2026 - machine: x86_64 +Fri Jan 9 10:33:10 2026 - clock source: unix +Fri Jan 9 10:33:10 2026 - pcre jit disabled +Fri Jan 9 10:33:10 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:33:10 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:33:10 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:33:10 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:33:10 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:33:10 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:33:10 2026 - your processes number limit is 61306 +Fri Jan 9 10:33:10 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:33:10 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:33:10 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:33:10 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:33:10 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:33:10 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:33:10 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:43071 (port auto-assigned) fd 4 +Fri Jan 9 10:33:10 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:33:10 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:33:10 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:33:10 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:33:10 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:33:10 2026 - Python main interpreter initialized at 0x73522cb52d10 +Fri Jan 9 10:33:10 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:33:10 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:33:10 2026 - python threads support enabled +Fri Jan 9 10:33:10 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:33:10 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:33:10 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:33:10 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:33:10 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:33:10 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:33:10 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x73522cb52d10 pid: 1782404 (default app) +Fri Jan 9 10:33:10 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:33:10 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:33:10 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:33:10 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:33:10 2026 - spawned uWSGI worker 1 (pid: 1819074, cores: 2) +Fri Jan 9 10:33:10 2026 - spawned uWSGI worker 2 (pid: 1819075, cores: 2) +Fri Jan 9 10:33:10 2026 - spawned uWSGI http 1 (pid: 1819078) +Fri Jan 9 10:33:10 2026 - Python auto-reloader enabled +Fri Jan 9 10:33:20 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:33:20 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:33:20 2026 - gateway "uWSGI http 1" has been buried (pid: 1819078) +Fri Jan 9 10:33:20 2026 - ...gracefully killing workers... +Fri Jan 9 10:33:20 2026 - Gracefully killing worker 2 (pid: 1819075)... +Fri Jan 9 10:33:20 2026 - Gracefully killing worker 1 (pid: 1819074)... +Fri Jan 9 10:33:21 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:33:21 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:33:21 2026 - binary reloading uWSGI... +Fri Jan 9 10:33:21 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:33:21 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:33:21 2026 - found fd 4 mapped to socket 0 (127.0.0.1:43071) +Fri Jan 9 10:33:21 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:33:21 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:33:21 2026] *** +Fri Jan 9 10:33:21 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:33:21 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:33:21 2026 - nodename: ubserver +Fri Jan 9 10:33:21 2026 - machine: x86_64 +Fri Jan 9 10:33:21 2026 - clock source: unix +Fri Jan 9 10:33:21 2026 - pcre jit disabled +Fri Jan 9 10:33:21 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:33:21 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:33:21 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:33:21 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:33:21 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:33:21 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:33:21 2026 - your processes number limit is 61306 +Fri Jan 9 10:33:21 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:33:21 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:33:21 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:33:21 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:33:21 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:33:21 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:33:21 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:39103 (port auto-assigned) fd 3 +Fri Jan 9 10:33:21 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:33:21 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:33:21 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:33:21 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:33:21 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:33:21 2026 - Python main interpreter initialized at 0x77bb83d52d10 +Fri Jan 9 10:33:21 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:33:21 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:33:21 2026 - python threads support enabled +Fri Jan 9 10:33:21 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:33:21 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:33:21 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:33:21 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:33:21 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:33:21 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:33:21 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x77bb83d52d10 pid: 1782404 (default app) +Fri Jan 9 10:33:21 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:33:21 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:33:21 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:33:21 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:33:21 2026 - spawned uWSGI worker 1 (pid: 1819123, cores: 2) +Fri Jan 9 10:33:21 2026 - spawned uWSGI worker 2 (pid: 1819124, cores: 2) +Fri Jan 9 10:33:21 2026 - spawned uWSGI http 1 (pid: 1819127) +Fri Jan 9 10:33:21 2026 - Python auto-reloader enabled +2026-01-09 10:33:21 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:33:21 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: GTaNs33vwoJ+4/EMmi2BNZfvbY/oa9P3ETIoIEbaLtRRSObPM2... +2026-01-09 10:33:21 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: b164aac779ad641d764d7ca78e44d290891bda18 +2026-01-09 10:33:21 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: b164aac779ad641d764d7ca78e44d290891bda18 +2026-01-09 10:33:21 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:33:21 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:33:21 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 10:33:21 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=latest_news, user=WeiJueSen +2026-01-09 10:33:21 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: latest_news, user: WeiJueSen +2026-01-09 10:33:21 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求最新公告 +{address space usage: 233709568 bytes/222MB} {rss usage: 38711296 bytes/36MB} [pid: 1819123|app: 0|req: 1/1] 183.47.117.101 () {36 vars in 679 bytes} [Fri Jan 9 10:33:21 2026] POST /api/v1/wechat/callback?msg_signature=b164aac779ad641d764d7ca78e44d290891bda18×tamp=1767926001&nonce=1768620865 => generated 1478 bytes in 6 msecs (HTTP/1.1 200) 2 headers in 81 bytes (1 switches on core 0) +2026-01-09 10:33:32 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 428 +2026-01-09 10:33:32 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: S1bfMrKOasqa288wweOEjK/5pKCyxvTfFasXMD4bcoNmS53AaP... +2026-01-09 10:33:32 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 0aab34f6a2cb370d6ead35df861f0e51b2305852 +2026-01-09 10:33:32 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 0aab34f6a2cb370d6ead35df861f0e51b2305852 +2026-01-09 10:33:32 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:33:32 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:33:32 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:33:32 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=10..., user=WeiJueSen +2026-01-09 10:33:32 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 10, user: WeiJueSen +2026-01-09 10:33:32 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 选择公告来源: 10 +2026-01-09 10:33:32 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +{address space usage: 239050752 bytes/227MB} {rss usage: 48742400 bytes/46MB} [pid: 1819124|app: 0|req: 1/2] 183.47.98.168 () {36 vars in 678 bytes} [Fri Jan 9 10:33:32 2026] POST /api/v1/wechat/callback?msg_signature=0aab34f6a2cb370d6ead35df861f0e51b2305852×tamp=1767926012&nonce=1768658849 => generated 2590 bytes in 58 msecs (HTTP/1.1 200) 2 headers in 81 bytes (1 switches on core 0) +2026-01-09 10:34:31 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:34:31 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: SnmNv1JvgNwdi/3C/KcStmOJIpzxorxgaCGic2u6tdLzsYmnOk... +2026-01-09 10:34:31 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: feb8eef2ddccadec738c597383cb60ab7423765c +2026-01-09 10:34:31 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: feb8eef2ddccadec738c597383cb60ab7423765c +2026-01-09 10:34:31 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:34:31 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:34:31 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event +2026-01-09 10:34:31 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=today_stats, user=WeiJueSen +2026-01-09 10:34:31 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: today_stats, user: WeiJueSen +2026-01-09 10:34:31 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 请求今日统计 +2026-01-09 10:34:31 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 10:34:31 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 10:34:31 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 10:34:31 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:34:31 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:34:31 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:34:31 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:34:31 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:34:31 - gx_gp_monitor.main - INFO - 应用初始化完成 +{address space usage: 234758144 bytes/223MB} {rss usage: 47702016 bytes/45MB} [pid: 1819123|app: 0|req: 2/3] 183.47.98.227 () {36 vars in 678 bytes} [Fri Jan 9 10:34:31 2026] POST /api/v1/wechat/callback?msg_signature=feb8eef2ddccadec738c597383cb60ab7423765c×tamp=1767926071&nonce=1768471749 => generated 966 bytes in 237 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 1) +2026-01-09 10:34:38 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:34:38 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: rBvhsf9qEmvSA53kCTz/vZk1cJ7XeUAHXZHecKetaDMwG+c7ds... +2026-01-09 10:34:38 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: cd7d1cd61fa529ae42f14c64bb227705c5b263de +2026-01-09 10:34:38 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: cd7d1cd61fa529ae42f14c64bb227705c5b263de +2026-01-09 10:34:38 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:34:38 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:34:38 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:34:38 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 10:34:38 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 10:34:38 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 10:34:38 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 10:34:38 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 10:34:38 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 10:34:38 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:34:38 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:34:38 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:34:38 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:34:38 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 10:34:38 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:34:38 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:34:38 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:34:43 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:34:43 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: rBvhsf9qEmvSA53kCTz/vZk1cJ7XeUAHXZHecKetaDMwG+c7ds... +2026-01-09 10:34:43 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: cd7d1cd61fa529ae42f14c64bb227705c5b263de +2026-01-09 10:34:43 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: cd7d1cd61fa529ae42f14c64bb227705c5b263de +2026-01-09 10:34:43 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:34:43 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:34:43 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:34:43 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=马山..., user=WeiJueSen +2026-01-09 10:34:43 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 马山, user: WeiJueSen +2026-01-09 10:34:43 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['马山'] +2026-01-09 10:34:43 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:34:43 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:34:43 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:34:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:43 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 0.43秒 +2026-01-09 10:34:43 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:34:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:44 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:34:44 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:34:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:44 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.28秒 +2026-01-09 10:34:44 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:34:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:44 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:34:44 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:34:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:44 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 10:34:44 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:34:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:45 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:34:45 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:34:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:45 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.43秒 +2026-01-09 10:34:45 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:34:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:45 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:34:45 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:34:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:45 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:34:45 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:34:46 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:46 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:34:46 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:34:46 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:46 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:34:46 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:34:46 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:46 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:34:46 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:34:46 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:34:46 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:34:46 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:34:46 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:34:46 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:34:46 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 193 条公告 +2026-01-09 10:34:46 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 193 -> 2 条公告 +2026-01-09 10:34:46 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 2 -> 2 条公告 +2026-01-09 10:34:46 - gx_gp_monitor.main - INFO - 筛选后剩余 2 条公告 +2026-01-09 10:34:46 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:34:46 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 2, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 191, 'date_filtered': 1107, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='关于打印/复印纸的网上超市合同公告', publish_date=datetime.datetime(2026, 1, 9, 9, 53, 47), purchase_name='马山县卫生健康局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=TQ8JBxuEbH10KU93ffGNUQ==', source_code='ZcyAnnouncement7', source_name='电子卖场公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 34, 45, 68742), created_at=None, updated_at=None, content_hash='406c71dd23410b265f2776eef85bddc7', keyword_matched=True, date_filtered=True, is_new=True, is_today=True), Announcement(id=None, title='马山县疾病预防控制中心[2181801000007961838]马山县龙之都汽车服务有限公司2025-2026年马山县县本级预算单位公务车辆维修、保养服务框架协议采购的验收公告', publish_date=datetime.datetime(2026, 1, 9, 9, 33, 27), purchase_name='马山县疾病预防控制中心', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=MiIzDm+fgMeYY8CH5dIPRA==', source_code='ZcyAnnouncement10', source_name='履约验收公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 34, 45, 497090), created_at=None, updated_at=None, content_hash='f22c9ba4ff8375192b93c24e1a2901df', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +{address space usage: 250597376 bytes/238MB} {rss usage: 64647168 bytes/61MB} [pid: 1819124|app: 0|req: 3/4] 106.55.201.217 () {36 vars in 679 bytes} [Fri Jan 9 10:34:43 2026] POST /api/v1/wechat/callback?msg_signature=cd7d1cd61fa529ae42f14c64bb227705c5b263de×tamp=1767926078&nonce=1768275254 => generated 710 bytes in 3272 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 0) +2026-01-09 10:35:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:09 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.51秒 +2026-01-09 10:35:09 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:35:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:09 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:35:09 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:35:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:09 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 10:35:09 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:35:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:09 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:35:09 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:35:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:10 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:35:10 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:35:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:10 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 10:35:10 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:35:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:10 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.42秒 +2026-01-09 10:35:10 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:35:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:10 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:35:10 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:35:11 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:11 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:35:11 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:35:11 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:11 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:35:11 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:35:11 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:11 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:35:11 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:35:11 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:11 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:35:11 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:35:11 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:35:11 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:35:11 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:35:11 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:35:11 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:35:11 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 194 条公告 +2026-01-09 10:35:11 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 194 -> 2 条公告 +2026-01-09 10:35:11 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 2 -> 2 条公告 +2026-01-09 10:35:11 - gx_gp_monitor.main - INFO - 筛选后剩余 2 条公告 +2026-01-09 10:35:11 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:35:11 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 2, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 192, 'date_filtered': 1106, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='关于打印/复印纸的网上超市合同公告', publish_date=datetime.datetime(2026, 1, 9, 9, 53, 47), purchase_name='马山县卫生健康局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=TQ8JBxuEbH10KU93ffGNUQ==', source_code='ZcyAnnouncement7', source_name='电子卖场公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 35, 10, 254547), created_at=None, updated_at=None, content_hash='406c71dd23410b265f2776eef85bddc7', keyword_matched=True, date_filtered=True, is_new=True, is_today=True), Announcement(id=None, title='马山县疾病预防控制中心[2181801000007961838]马山县龙之都汽车服务有限公司2025-2026年马山县县本级预算单位公务车辆维修、保养服务框架协议采购的验收公告', publish_date=datetime.datetime(2026, 1, 9, 9, 33, 27), purchase_name='马山县疾病预防控制中心', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=MiIzDm+fgMeYY8CH5dIPRA==', source_code='ZcyAnnouncement10', source_name='履约验收公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 35, 10, 669761), created_at=None, updated_at=None, content_hash='f22c9ba4ff8375192b93c24e1a2901df', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +{address space usage: 243257344 bytes/231MB} {rss usage: 57946112 bytes/55MB} [pid: 1819124|app: 0|req: 3/5] 183.47.117.101 () {36 vars in 679 bytes} [Fri Jan 9 10:34:38 2026] POST /api/v1/wechat/callback?msg_signature=cd7d1cd61fa529ae42f14c64bb227705c5b263de×tamp=1767926078&nonce=1768275254 => generated 710 bytes in 33339 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 1) +2026-01-09 10:36:32 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:36:32 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: NNqNKwBKU8YP87SfjRv8oENckQkQFS70OmhGuzkGFrsC1YwEBQ... +2026-01-09 10:36:32 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 45f5c588689dc7ae542ab1553699861c4711dc8a +2026-01-09 10:36:32 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 45f5c588689dc7ae542ab1553699861c4711dc8a +2026-01-09 10:36:32 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:36:32 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:36:32 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:36:32 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=搜索 大化..., user=WeiJueSen +2026-01-09 10:36:32 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 搜索 大化, user: WeiJueSen +2026-01-09 10:36:32 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 手动搜索关键词: ['大化'] +2026-01-09 10:36:32 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:36:32 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:36:32 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:36:37 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:36:37 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: NNqNKwBKU8YP87SfjRv8oENckQkQFS70OmhGuzkGFrsC1YwEBQ... +2026-01-09 10:36:37 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 45f5c588689dc7ae542ab1553699861c4711dc8a +2026-01-09 10:36:37 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 45f5c588689dc7ae542ab1553699861c4711dc8a +2026-01-09 10:36:37 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:36:37 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:36:37 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:36:37 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=搜索 大化..., user=WeiJueSen +2026-01-09 10:36:37 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 搜索 大化, user: WeiJueSen +2026-01-09 10:36:37 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 手动搜索关键词: ['大化'] +2026-01-09 10:36:37 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:36:37 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:36:37 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:36:42 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:36:42 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: NNqNKwBKU8YP87SfjRv8oENckQkQFS70OmhGuzkGFrsC1YwEBQ... +2026-01-09 10:36:42 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 45f5c588689dc7ae542ab1553699861c4711dc8a +2026-01-09 10:36:42 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 45f5c588689dc7ae542ab1553699861c4711dc8a +2026-01-09 10:36:42 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:36:42 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:36:42 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:36:42 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=搜索 大化..., user=WeiJueSen +2026-01-09 10:36:42 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 搜索 大化, user: WeiJueSen +2026-01-09 10:36:42 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 手动搜索关键词: ['大化'] +2026-01-09 10:36:42 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:36:42 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:36:42 - gx_gp_monitor - INFO - 开始爬取 采购公告 +Fri Jan 9 10:37:02 2026 - *** HARAKIRI ON WORKER 1 (pid: 1819123, try: 1, graceful: yes) *** +Fri Jan 9 10:37:02 2026 - HARAKIRI !!! worker 1 status !!! +Fri Jan 9 10:37:02 2026 - HARAKIRI [core 0] 183.47.98.168 - POST /api/v1/wechat/callback?msg_signature=45f5c588689dc7ae542ab1553699861c4711dc8a×tamp=1767926192&nonce=1768601135 since 1767926192 +Fri Jan 9 10:37:02 2026 - HARAKIRI !!! end of worker 1 status !!! +Fri Jan 9 10:37:02 2026 - HARAKIRI triggered by worker 1 core 0 !!! +Fri Jan 9 10:37:03 2026 - DAMN ! worker 1 (pid: 1819123) died, killed by signal 9 :( trying respawn ... +Fri Jan 9 10:37:03 2026 - Respawned uWSGI worker 1 (new pid: 1820451) +Fri Jan 9 10:37:03 2026 - Python auto-reloader enabled +2026-01-09 10:37:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:08 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.39秒 +2026-01-09 10:37:08 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:37:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:08 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 10:37:08 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:37:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:08 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:37:08 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:37:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:08 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:37:08 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:37:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:09 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 10:37:09 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:37:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:09 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:37:09 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:37:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:09 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.39秒 +2026-01-09 10:37:09 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:37:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:09 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:37:09 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:37:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:10 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:37:10 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:37:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:10 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:37:10 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:37:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:10 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:37:10 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:37:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:10 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.26秒 +2026-01-09 10:37:10 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:37:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:10 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:37:10 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:37:10 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:37:10 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:37:10 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 199 条公告 +2026-01-09 10:37:10 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 199 -> 1 条公告 +2026-01-09 10:37:10 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1 -> 1 条公告 +2026-01-09 10:37:10 - gx_gp_monitor.main - INFO - 筛选后剩余 1 条公告 +2026-01-09 10:37:10 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:37:10 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 1, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 198, 'date_filtered': 1101, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='大化瑶族自治县2025年度国土变更(日常变更)调查项目合同公告', publish_date=datetime.datetime(2026, 1, 9, 10, 2, 19), purchase_name='大化瑶族自治县自然资源局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=NSAtgiyTEYUaFq3dcNs6ig==', source_code='ZcyAnnouncement3', source_name='合同公告', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 37, 8, 446065), created_at=None, updated_at=None, content_hash='9270849ec53ce195b3fc4de103ef656a', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +{address space usage: 254787584 bytes/242MB} {rss usage: 74129408 bytes/70MB} [pid: 1819124|app: 0|req: 5/6] 106.55.201.217 () {36 vars in 679 bytes} [Fri Jan 9 10:36:37 2026] POST /api/v1/wechat/callback?msg_signature=45f5c588689dc7ae542ab1553699861c4711dc8a×tamp=1767926192&nonce=1768601135 => generated 710 bytes in 33138 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 0) +2026-01-09 10:37:13 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:13 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.38秒 +2026-01-09 10:37:13 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:37:13 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:13 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.26秒 +2026-01-09 10:37:13 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:37:13 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:13 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:37:13 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:37:13 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:13 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:37:13 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:37:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:14 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:37:14 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:37:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:14 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:37:14 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:37:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:14 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.36秒 +2026-01-09 10:37:14 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:37:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:14 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:37:14 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:37:15 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:15 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.26秒 +2026-01-09 10:37:15 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:37:15 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:15 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:37:15 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:37:15 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:15 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.34秒 +2026-01-09 10:37:15 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:37:15 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:15 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.29秒 +2026-01-09 10:37:15 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:37:16 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:16 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.29秒 +2026-01-09 10:37:16 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:37:16 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:37:16 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:37:16 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 199 条公告 +2026-01-09 10:37:16 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 199 -> 1 条公告 +2026-01-09 10:37:16 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1 -> 1 条公告 +2026-01-09 10:37:16 - gx_gp_monitor.main - INFO - 筛选后剩余 1 条公告 +2026-01-09 10:37:16 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:37:16 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 1, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 198, 'date_filtered': 1101, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='大化瑶族自治县2025年度国土变更(日常变更)调查项目合同公告', publish_date=datetime.datetime(2026, 1, 9, 10, 2, 19), purchase_name='大化瑶族自治县自然资源局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=NSAtgiyTEYUaFq3dcNs6ig==', source_code='ZcyAnnouncement3', source_name='合同公告', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 37, 13, 480617), created_at=None, updated_at=None, content_hash='9270849ec53ce195b3fc4de103ef656a', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +{address space usage: 245350400 bytes/233MB} {rss usage: 64823296 bytes/61MB} [pid: 1819124|app: 0|req: 5/7] 112.53.2.93 () {36 vars in 676 bytes} [Fri Jan 9 10:36:42 2026] POST /api/v1/wechat/callback?msg_signature=45f5c588689dc7ae542ab1553699861c4711dc8a×tamp=1767926192&nonce=1768601135 => generated 710 bytes in 33356 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 1) +2026-01-09 10:37:32 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:37:32 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: Lkx65MFWghgpCIU1tWydWqtX7DDrez3S6jBM64NmE/dhfhBQMy... +2026-01-09 10:37:32 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 047168e9e8d4e60f631ac6f98d07d8380df9c2b8 +2026-01-09 10:37:32 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 047168e9e8d4e60f631ac6f98d07d8380df9c2b8 +2026-01-09 10:37:32 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:37:32 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:37:32 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:37:32 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=搜索 马山..., user=WeiJueSen +2026-01-09 10:37:32 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 搜索 马山, user: WeiJueSen +2026-01-09 10:37:32 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 手动搜索关键词: ['马山'] +2026-01-09 10:37:32 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 10:37:32 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 10:37:32 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 10:37:32 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:37:32 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:37:32 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:37:32 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:37:32 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:37:32 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 10:37:32 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:37:32 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:37:32 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:37:37 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:37:37 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: Lkx65MFWghgpCIU1tWydWqtX7DDrez3S6jBM64NmE/dhfhBQMy... +2026-01-09 10:37:37 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 047168e9e8d4e60f631ac6f98d07d8380df9c2b8 +2026-01-09 10:37:37 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 047168e9e8d4e60f631ac6f98d07d8380df9c2b8 +2026-01-09 10:37:37 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:37:37 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:37:37 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:37:37 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=搜索 马山..., user=WeiJueSen +2026-01-09 10:37:37 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 搜索 马山, user: WeiJueSen +2026-01-09 10:37:37 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 手动搜索关键词: ['马山'] +2026-01-09 10:37:37 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:37:37 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:37:37 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:37:42 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:37:42 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: Lkx65MFWghgpCIU1tWydWqtX7DDrez3S6jBM64NmE/dhfhBQMy... +2026-01-09 10:37:42 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 047168e9e8d4e60f631ac6f98d07d8380df9c2b8 +2026-01-09 10:37:42 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 047168e9e8d4e60f631ac6f98d07d8380df9c2b8 +2026-01-09 10:37:42 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:37:42 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:37:42 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:37:42 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=搜索 马山..., user=WeiJueSen +2026-01-09 10:37:42 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 搜索 马山, user: WeiJueSen +2026-01-09 10:37:42 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 手动搜索关键词: ['马山'] +2026-01-09 10:37:42 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:37:42 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:37:42 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:37:42 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:42 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 0.44秒 +2026-01-09 10:37:42 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:37:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:43 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.37秒 +2026-01-09 10:37:43 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:37:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:43 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 10:37:43 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:37:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:43 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:37:43 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:37:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:43 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:37:43 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:37:43 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:43 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:37:43 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:37:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:44 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.34秒 +2026-01-09 10:37:44 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:37:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:44 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:37:44 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:37:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:44 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:37:44 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:37:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:44 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:37:44 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:37:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:44 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:37:44 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:37:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:45 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:37:45 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:37:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:37:45 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:37:45 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:37:45 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:37:45 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:37:45 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 200 条公告 +2026-01-09 10:37:45 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 200 -> 2 条公告 +2026-01-09 10:37:45 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 2 -> 2 条公告 +2026-01-09 10:37:45 - gx_gp_monitor.main - INFO - 筛选后剩余 2 条公告 +2026-01-09 10:37:45 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:37:45 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 2, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 198, 'date_filtered': 1100, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='关于打印/复印纸的网上超市合同公告', publish_date=datetime.datetime(2026, 1, 9, 9, 53, 47), purchase_name='马山县卫生健康局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=TQ8JBxuEbH10KU93ffGNUQ==', source_code='ZcyAnnouncement7', source_name='电子卖场公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 37, 43, 886887), created_at=None, updated_at=None, content_hash='406c71dd23410b265f2776eef85bddc7', keyword_matched=True, date_filtered=True, is_new=True, is_today=True), Announcement(id=None, title='马山县疾病预防控制中心[2181801000007961838]马山县龙之都汽车服务有限公司2025-2026年马山县县本级预算单位公务车辆维修、保养服务框架协议采购的验收公告', publish_date=datetime.datetime(2026, 1, 9, 9, 33, 27), purchase_name='马山县疾病预防控制中心', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=MiIzDm+fgMeYY8CH5dIPRA==', source_code='ZcyAnnouncement10', source_name='履约验收公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 37, 44, 227222), created_at=None, updated_at=None, content_hash='f22c9ba4ff8375192b93c24e1a2901df', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +{address space usage: 246398976 bytes/234MB} {rss usage: 64925696 bytes/61MB} [pid: 1819124|app: 0|req: 6/8] 112.53.2.93 () {36 vars in 676 bytes} [Fri Jan 9 10:37:42 2026] POST /api/v1/wechat/callback?msg_signature=047168e9e8d4e60f631ac6f98d07d8380df9c2b8×tamp=1767926252&nonce=1768012394 => generated 710 bytes in 3124 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 0) +2026-01-09 10:38:02 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:02 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.38秒 +2026-01-09 10:38:02 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:38:02 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:02 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:38:02 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:38:03 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:03 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 10:38:03 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:38:03 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:03 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.28秒 +2026-01-09 10:38:03 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:38:03 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:03 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:38:03 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:38:03 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:03 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:38:03 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:38:04 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:04 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.34秒 +2026-01-09 10:38:04 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:38:04 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:04 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:38:04 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:38:04 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:04 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.26秒 +2026-01-09 10:38:04 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:38:04 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:04 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.26秒 +2026-01-09 10:38:04 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:38:05 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:05 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:38:05 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:38:05 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:05 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:38:05 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:38:05 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:05 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:38:05 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:38:05 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:38:05 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:38:05 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 203 条公告 +2026-01-09 10:38:05 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 203 -> 2 条公告 +2026-01-09 10:38:05 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 2 -> 2 条公告 +2026-01-09 10:38:05 - gx_gp_monitor.main - INFO - 筛选后剩余 2 条公告 +2026-01-09 10:38:05 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:38:05 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 2, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 201, 'date_filtered': 1097, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='关于打印/复印纸的网上超市合同公告', publish_date=datetime.datetime(2026, 1, 9, 9, 53, 47), purchase_name='马山县卫生健康局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=TQ8JBxuEbH10KU93ffGNUQ==', source_code='ZcyAnnouncement7', source_name='电子卖场公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 38, 3, 903378), created_at=None, updated_at=None, content_hash='406c71dd23410b265f2776eef85bddc7', keyword_matched=True, date_filtered=True, is_new=True, is_today=True), Announcement(id=None, title='马山县疾病预防控制中心[2181801000007961838]马山县龙之都汽车服务有限公司2025-2026年马山县县本级预算单位公务车辆维修、保养服务框架协议采购的验收公告', publish_date=datetime.datetime(2026, 1, 9, 9, 33, 27), purchase_name='马山县疾病预防控制中心', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=MiIzDm+fgMeYY8CH5dIPRA==', source_code='ZcyAnnouncement10', source_name='履约验收公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 38, 4, 239840), created_at=None, updated_at=None, content_hash='f22c9ba4ff8375192b93c24e1a2901df', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +{address space usage: 254042112 bytes/242MB} {rss usage: 71852032 bytes/68MB} [pid: 1820451|app: 0|req: 5/9] 183.47.98.227 () {36 vars in 678 bytes} [Fri Jan 9 10:37:32 2026] POST /api/v1/wechat/callback?msg_signature=047168e9e8d4e60f631ac6f98d07d8380df9c2b8×tamp=1767926252&nonce=1768012394 => generated 710 bytes in 33319 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 0) +2026-01-09 10:38:07 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:07 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.38秒 +2026-01-09 10:38:07 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:38:07 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:07 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:38:07 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:38:07 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:07 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:38:07 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:38:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:08 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:38:08 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:38:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:08 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:38:08 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:38:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:08 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:38:08 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:38:08 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:08 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.34秒 +2026-01-09 10:38:08 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:38:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:09 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 10:38:09 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:38:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:09 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:38:09 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:38:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:09 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:38:09 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:38:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:09 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:38:09 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:38:09 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:09 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:38:09 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:38:10 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:38:10 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:38:10 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:38:10 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:38:10 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:38:10 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 203 条公告 +2026-01-09 10:38:10 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 203 -> 2 条公告 +2026-01-09 10:38:10 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 2 -> 2 条公告 +2026-01-09 10:38:10 - gx_gp_monitor.main - INFO - 筛选后剩余 2 条公告 +2026-01-09 10:38:10 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:38:10 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 2, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 201, 'date_filtered': 1097, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='关于打印/复印纸的网上超市合同公告', publish_date=datetime.datetime(2026, 1, 9, 9, 53, 47), purchase_name='马山县卫生健康局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=TQ8JBxuEbH10KU93ffGNUQ==', source_code='ZcyAnnouncement7', source_name='电子卖场公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 38, 8, 573750), created_at=None, updated_at=None, content_hash='406c71dd23410b265f2776eef85bddc7', keyword_matched=True, date_filtered=True, is_new=True, is_today=True), Announcement(id=None, title='马山县疾病预防控制中心[2181801000007961838]马山县龙之都汽车服务有限公司2025-2026年马山县县本级预算单位公务车辆维修、保养服务框架协议采购的验收公告', publish_date=datetime.datetime(2026, 1, 9, 9, 33, 27), purchase_name='马山县疾病预防控制中心', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=MiIzDm+fgMeYY8CH5dIPRA==', source_code='ZcyAnnouncement10', source_name='履约验收公示', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 38, 8, 911610), created_at=None, updated_at=None, content_hash='f22c9ba4ff8375192b93c24e1a2901df', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +{address space usage: 243556352 bytes/232MB} {rss usage: 61554688 bytes/58MB} [pid: 1820451|app: 0|req: 5/10] 106.55.202.215 () {36 vars in 679 bytes} [Fri Jan 9 10:37:37 2026] POST /api/v1/wechat/callback?msg_signature=047168e9e8d4e60f631ac6f98d07d8380df9c2b8×tamp=1767926252&nonce=1768012394 => generated 710 bytes in 32924 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 1) +Fri Jan 9 10:42:44 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:42:44 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:42:44 2026 - gateway "uWSGI http 1" has been buried (pid: 1819127) +Fri Jan 9 10:42:44 2026 - ...gracefully killing workers... +Fri Jan 9 10:42:44 2026 - Gracefully killing worker 2 (pid: 1819124)... +Fri Jan 9 10:42:44 2026 - Gracefully killing worker 1 (pid: 1820451)... +Fri Jan 9 10:42:45 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:42:45 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:42:45 2026 - binary reloading uWSGI... +Fri Jan 9 10:42:45 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:42:45 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:42:45 2026 - found fd 3 mapped to socket 0 (127.0.0.1:39103) +Fri Jan 9 10:42:45 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:42:45 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:42:45 2026] *** +Fri Jan 9 10:42:45 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:42:45 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:42:45 2026 - nodename: ubserver +Fri Jan 9 10:42:45 2026 - machine: x86_64 +Fri Jan 9 10:42:45 2026 - clock source: unix +Fri Jan 9 10:42:45 2026 - pcre jit disabled +Fri Jan 9 10:42:45 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:42:45 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:42:45 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:42:45 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:42:45 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:42:45 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:42:45 2026 - your processes number limit is 61306 +Fri Jan 9 10:42:45 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:42:45 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:42:45 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:42:45 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:42:45 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:42:45 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:42:45 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:41921 (port auto-assigned) fd 4 +Fri Jan 9 10:42:45 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:42:45 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:42:45 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:42:45 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:42:45 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:42:45 2026 - Python main interpreter initialized at 0x74fbab152d10 +Fri Jan 9 10:42:45 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:42:45 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:42:45 2026 - python threads support enabled +Fri Jan 9 10:42:45 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:42:45 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:42:45 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:42:45 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:42:45 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:42:45 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:42:45 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x74fbab152d10 pid: 1782404 (default app) +Fri Jan 9 10:42:45 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:42:45 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:42:45 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:42:45 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:42:45 2026 - spawned uWSGI worker 1 (pid: 1822209, cores: 2) +Fri Jan 9 10:42:45 2026 - spawned uWSGI worker 2 (pid: 1822212, cores: 2) +Fri Jan 9 10:42:45 2026 - Python auto-reloader enabled +Fri Jan 9 10:42:45 2026 - spawned uWSGI http 1 (pid: 1822215) +Fri Jan 9 10:42:56 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:42:56 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:42:56 2026 - gateway "uWSGI http 1" has been buried (pid: 1822215) +Fri Jan 9 10:42:56 2026 - ...gracefully killing workers... +Fri Jan 9 10:42:56 2026 - Gracefully killing worker 1 (pid: 1822209)... +Fri Jan 9 10:42:56 2026 - Gracefully killing worker 2 (pid: 1822212)... +Fri Jan 9 10:42:57 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:42:57 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:42:57 2026 - binary reloading uWSGI... +Fri Jan 9 10:42:57 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:42:57 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:42:57 2026 - found fd 4 mapped to socket 0 (127.0.0.1:41921) +Fri Jan 9 10:42:57 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:42:57 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:42:57 2026] *** +Fri Jan 9 10:42:57 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:42:57 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:42:57 2026 - nodename: ubserver +Fri Jan 9 10:42:57 2026 - machine: x86_64 +Fri Jan 9 10:42:57 2026 - clock source: unix +Fri Jan 9 10:42:57 2026 - pcre jit disabled +Fri Jan 9 10:42:57 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:42:57 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:42:57 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:42:57 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:42:57 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:42:57 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:42:57 2026 - your processes number limit is 61306 +Fri Jan 9 10:42:57 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:42:57 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:42:57 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:42:57 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:42:57 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:42:57 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:42:57 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:36909 (port auto-assigned) fd 3 +Fri Jan 9 10:42:57 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:42:57 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:42:57 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:42:57 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:42:57 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:42:57 2026 - Python main interpreter initialized at 0x7aef49152d10 +Fri Jan 9 10:42:57 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:42:57 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:42:57 2026 - python threads support enabled +Fri Jan 9 10:42:57 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:42:57 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:42:57 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:42:57 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:42:57 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:42:57 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:42:57 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7aef49152d10 pid: 1782404 (default app) +Fri Jan 9 10:42:57 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:42:57 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:42:57 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:42:57 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:42:57 2026 - spawned uWSGI worker 1 (pid: 1822242, cores: 2) +Fri Jan 9 10:42:57 2026 - spawned uWSGI worker 2 (pid: 1822243, cores: 2) +Fri Jan 9 10:42:57 2026 - Python auto-reloader enabled +Fri Jan 9 10:42:57 2026 - spawned uWSGI http 1 (pid: 1822248) +Fri Jan 9 10:43:04 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:43:04 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:43:04 2026 - gateway "uWSGI http 1" has been buried (pid: 1822248) +Fri Jan 9 10:43:04 2026 - ...gracefully killing workers... +Fri Jan 9 10:43:04 2026 - Gracefully killing worker 1 (pid: 1822242)... +Fri Jan 9 10:43:04 2026 - Gracefully killing worker 2 (pid: 1822243)... +Fri Jan 9 10:43:05 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:43:05 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:43:05 2026 - binary reloading uWSGI... +Fri Jan 9 10:43:05 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:43:05 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:43:05 2026 - found fd 3 mapped to socket 0 (127.0.0.1:36909) +Fri Jan 9 10:43:05 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:43:05 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:43:05 2026] *** +Fri Jan 9 10:43:05 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:43:05 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:43:05 2026 - nodename: ubserver +Fri Jan 9 10:43:05 2026 - machine: x86_64 +Fri Jan 9 10:43:05 2026 - clock source: unix +Fri Jan 9 10:43:05 2026 - pcre jit disabled +Fri Jan 9 10:43:05 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:43:05 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:43:05 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:43:05 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:43:05 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:43:05 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:43:05 2026 - your processes number limit is 61306 +Fri Jan 9 10:43:05 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:43:05 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:43:05 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:43:05 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:43:05 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:43:05 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:43:05 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:39615 (port auto-assigned) fd 4 +Fri Jan 9 10:43:05 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:43:05 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:43:05 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:43:05 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:43:05 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:43:05 2026 - Python main interpreter initialized at 0x70ebea952d10 +Fri Jan 9 10:43:05 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:43:05 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:43:05 2026 - python threads support enabled +Fri Jan 9 10:43:05 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:43:05 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:43:05 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:43:05 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:43:05 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:43:05 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:43:05 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x70ebea952d10 pid: 1782404 (default app) +Fri Jan 9 10:43:05 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:43:05 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:43:05 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:43:05 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:43:05 2026 - spawned uWSGI worker 1 (pid: 1822287, cores: 2) +Fri Jan 9 10:43:05 2026 - spawned uWSGI worker 2 (pid: 1822288, cores: 2) +Fri Jan 9 10:43:05 2026 - spawned uWSGI http 1 (pid: 1822293) +Fri Jan 9 10:43:05 2026 - Python auto-reloader enabled +Fri Jan 9 10:43:25 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:43:25 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:43:25 2026 - gateway "uWSGI http 1" has been buried (pid: 1822293) +Fri Jan 9 10:43:25 2026 - ...gracefully killing workers... +Fri Jan 9 10:43:25 2026 - Gracefully killing worker 1 (pid: 1822287)... +Fri Jan 9 10:43:25 2026 - Gracefully killing worker 2 (pid: 1822288)... +Fri Jan 9 10:43:26 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:43:26 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:43:26 2026 - binary reloading uWSGI... +Fri Jan 9 10:43:26 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:43:26 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:43:26 2026 - found fd 4 mapped to socket 0 (127.0.0.1:39615) +Fri Jan 9 10:43:26 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:43:26 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:43:26 2026] *** +Fri Jan 9 10:43:26 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:43:26 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:43:26 2026 - nodename: ubserver +Fri Jan 9 10:43:26 2026 - machine: x86_64 +Fri Jan 9 10:43:26 2026 - clock source: unix +Fri Jan 9 10:43:26 2026 - pcre jit disabled +Fri Jan 9 10:43:26 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:43:26 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:43:26 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:43:26 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:43:26 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:43:26 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:43:26 2026 - your processes number limit is 61306 +Fri Jan 9 10:43:26 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:43:26 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:43:26 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:43:26 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:43:26 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:43:26 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:43:26 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:46683 (port auto-assigned) fd 3 +Fri Jan 9 10:43:26 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:43:26 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:43:26 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:43:26 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:43:26 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:43:26 2026 - Python main interpreter initialized at 0x7909fff52d10 +Fri Jan 9 10:43:26 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:43:26 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:43:26 2026 - python threads support enabled +Fri Jan 9 10:43:26 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:43:26 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:43:26 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:43:26 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:43:27 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:43:27 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:43:27 2026 - WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x7909fff52d10 pid: 1782404 (default app) +Fri Jan 9 10:43:27 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:43:27 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:43:27 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:43:27 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:43:27 2026 - spawned uWSGI worker 1 (pid: 1822416, cores: 2) +Fri Jan 9 10:43:27 2026 - spawned uWSGI worker 2 (pid: 1822417, cores: 2) +Fri Jan 9 10:43:27 2026 - Python auto-reloader enabled +Fri Jan 9 10:43:27 2026 - spawned uWSGI http 1 (pid: 1822420) +Fri Jan 9 10:43:34 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:43:34 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:43:34 2026 - gateway "uWSGI http 1" has been buried (pid: 1822420) +Fri Jan 9 10:43:34 2026 - ...gracefully killing workers... +Fri Jan 9 10:43:34 2026 - Gracefully killing worker 2 (pid: 1822417)... +Fri Jan 9 10:43:34 2026 - Gracefully killing worker 1 (pid: 1822416)... +Fri Jan 9 10:43:35 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:43:35 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:43:35 2026 - binary reloading uWSGI... +Fri Jan 9 10:43:35 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:43:35 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:43:35 2026 - found fd 3 mapped to socket 0 (127.0.0.1:46683) +Fri Jan 9 10:43:35 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:43:35 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:43:35 2026] *** +Fri Jan 9 10:43:35 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:43:35 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:43:35 2026 - nodename: ubserver +Fri Jan 9 10:43:35 2026 - machine: x86_64 +Fri Jan 9 10:43:35 2026 - clock source: unix +Fri Jan 9 10:43:35 2026 - pcre jit disabled +Fri Jan 9 10:43:35 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:43:35 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:43:35 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:43:35 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:43:35 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:43:35 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:43:35 2026 - your processes number limit is 61306 +Fri Jan 9 10:43:35 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:43:35 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:43:35 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:43:35 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:43:35 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:43:35 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:43:35 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:44857 (port auto-assigned) fd 4 +Fri Jan 9 10:43:35 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:43:35 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:43:35 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:43:35 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:43:35 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:43:35 2026 - Python main interpreter initialized at 0x7b438fd52d10 +Fri Jan 9 10:43:35 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:43:35 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:43:35 2026 - python threads support enabled +Fri Jan 9 10:43:35 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:43:35 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:43:35 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:43:35 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:43:35 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:43:35 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:43:35 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7b438fd52d10 pid: 1782404 (default app) +Fri Jan 9 10:43:35 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:43:35 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:43:35 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:43:35 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:43:35 2026 - spawned uWSGI worker 1 (pid: 1822460, cores: 2) +Fri Jan 9 10:43:35 2026 - spawned uWSGI worker 2 (pid: 1822461, cores: 2) +Fri Jan 9 10:43:35 2026 - spawned uWSGI http 1 (pid: 1822465) +Fri Jan 9 10:43:35 2026 - Python auto-reloader enabled +Fri Jan 9 10:45:16 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:45:16 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:45:16 2026 - gateway "uWSGI http 1" has been buried (pid: 1822465) +Fri Jan 9 10:45:16 2026 - ...gracefully killing workers... +Fri Jan 9 10:45:16 2026 - Gracefully killing worker 2 (pid: 1822461)... +Fri Jan 9 10:45:16 2026 - Gracefully killing worker 1 (pid: 1822460)... +Fri Jan 9 10:45:17 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:45:17 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:45:17 2026 - binary reloading uWSGI... +Fri Jan 9 10:45:17 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:45:17 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:45:17 2026 - found fd 4 mapped to socket 0 (127.0.0.1:44857) +Fri Jan 9 10:45:17 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:45:17 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:45:17 2026] *** +Fri Jan 9 10:45:17 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:45:17 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:45:17 2026 - nodename: ubserver +Fri Jan 9 10:45:17 2026 - machine: x86_64 +Fri Jan 9 10:45:17 2026 - clock source: unix +Fri Jan 9 10:45:17 2026 - pcre jit disabled +Fri Jan 9 10:45:17 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:45:17 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:45:17 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:45:17 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:45:17 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:45:17 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:45:17 2026 - your processes number limit is 61306 +Fri Jan 9 10:45:17 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:45:17 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:45:17 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:45:17 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:45:17 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:45:17 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:45:17 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:33191 (port auto-assigned) fd 3 +Fri Jan 9 10:45:17 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:45:17 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:45:17 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:45:17 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:45:17 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:45:17 2026 - Python main interpreter initialized at 0x71e619952d10 +Fri Jan 9 10:45:17 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:45:17 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:45:17 2026 - python threads support enabled +Fri Jan 9 10:45:17 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:45:17 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:45:17 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:45:17 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:45:17 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:45:17 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:45:17 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x71e619952d10 pid: 1782404 (default app) +Fri Jan 9 10:45:17 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:45:17 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:45:17 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:45:17 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:45:17 2026 - spawned uWSGI worker 1 (pid: 1823141, cores: 2) +Fri Jan 9 10:45:17 2026 - spawned uWSGI worker 2 (pid: 1823142, cores: 2) +Fri Jan 9 10:45:17 2026 - spawned uWSGI http 1 (pid: 1823145) +Fri Jan 9 10:45:17 2026 - Python auto-reloader enabled +Fri Jan 9 10:46:34 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:46:34 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:46:34 2026 - gateway "uWSGI http 1" has been buried (pid: 1823145) +Fri Jan 9 10:46:34 2026 - ...gracefully killing workers... +Fri Jan 9 10:46:34 2026 - Gracefully killing worker 1 (pid: 1823141)... +Fri Jan 9 10:46:34 2026 - Gracefully killing worker 2 (pid: 1823142)... +Fri Jan 9 10:46:35 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:46:35 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:46:35 2026 - binary reloading uWSGI... +Fri Jan 9 10:46:35 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:46:35 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:46:35 2026 - found fd 3 mapped to socket 0 (127.0.0.1:33191) +Fri Jan 9 10:46:35 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:46:35 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:46:35 2026] *** +Fri Jan 9 10:46:35 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:46:35 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:46:35 2026 - nodename: ubserver +Fri Jan 9 10:46:35 2026 - machine: x86_64 +Fri Jan 9 10:46:35 2026 - clock source: unix +Fri Jan 9 10:46:35 2026 - pcre jit disabled +Fri Jan 9 10:46:35 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:46:35 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:46:35 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:46:35 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:46:35 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:46:35 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:46:35 2026 - your processes number limit is 61306 +Fri Jan 9 10:46:35 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:46:35 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:46:35 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:46:35 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:46:35 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:46:35 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:46:35 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:40143 (port auto-assigned) fd 4 +Fri Jan 9 10:46:35 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:46:35 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:46:35 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:46:35 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:46:35 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:46:35 2026 - Python main interpreter initialized at 0x73bf71752d10 +Fri Jan 9 10:46:35 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:46:35 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:46:35 2026 - python threads support enabled +Fri Jan 9 10:46:35 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:46:35 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:46:35 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:46:35 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:46:35 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:46:35 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:46:35 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x73bf71752d10 pid: 1782404 (default app) +Fri Jan 9 10:46:35 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:46:35 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:46:35 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:46:35 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:46:35 2026 - spawned uWSGI worker 1 (pid: 1823685, cores: 2) +Fri Jan 9 10:46:35 2026 - spawned uWSGI worker 2 (pid: 1823688, cores: 2) +Fri Jan 9 10:46:35 2026 - Python auto-reloader enabled +Fri Jan 9 10:46:35 2026 - spawned uWSGI http 1 (pid: 1823691) +Fri Jan 9 10:46:38 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:46:38 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:46:38 2026 - gateway "uWSGI http 1" has been buried (pid: 1823691) +Fri Jan 9 10:46:38 2026 - ...gracefully killing workers... +Fri Jan 9 10:46:38 2026 - Gracefully killing worker 2 (pid: 1823688)... +Fri Jan 9 10:46:38 2026 - Gracefully killing worker 1 (pid: 1823685)... +Fri Jan 9 10:46:39 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:46:39 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:46:39 2026 - binary reloading uWSGI... +Fri Jan 9 10:46:39 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:46:39 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:46:39 2026 - found fd 4 mapped to socket 0 (127.0.0.1:40143) +Fri Jan 9 10:46:39 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:46:39 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:46:39 2026] *** +Fri Jan 9 10:46:39 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:46:39 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:46:39 2026 - nodename: ubserver +Fri Jan 9 10:46:39 2026 - machine: x86_64 +Fri Jan 9 10:46:39 2026 - clock source: unix +Fri Jan 9 10:46:39 2026 - pcre jit disabled +Fri Jan 9 10:46:39 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:46:39 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:46:39 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:46:39 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:46:39 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:46:39 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:46:39 2026 - your processes number limit is 61306 +Fri Jan 9 10:46:39 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:46:39 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:46:39 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:46:39 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:46:39 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:46:39 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:46:39 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:42627 (port auto-assigned) fd 3 +Fri Jan 9 10:46:39 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:46:39 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:46:39 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:46:39 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:46:39 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:46:39 2026 - Python main interpreter initialized at 0x7c9fff552d10 +Fri Jan 9 10:46:39 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:46:39 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:46:39 2026 - python threads support enabled +Fri Jan 9 10:46:39 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:46:39 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:46:39 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:46:39 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:46:39 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:46:39 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:46:39 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7c9fff552d10 pid: 1782404 (default app) +Fri Jan 9 10:46:39 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:46:39 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:46:39 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:46:39 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:46:39 2026 - spawned uWSGI worker 1 (pid: 1823703, cores: 2) +Fri Jan 9 10:46:39 2026 - spawned uWSGI worker 2 (pid: 1823704, cores: 2) +Fri Jan 9 10:46:39 2026 - Python auto-reloader enabled +Fri Jan 9 10:46:39 2026 - spawned uWSGI http 1 (pid: 1823707) +Fri Jan 9 10:47:35 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:47:35 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:47:35 2026 - gateway "uWSGI http 1" has been buried (pid: 1823707) +Fri Jan 9 10:47:35 2026 - ...gracefully killing workers... +Fri Jan 9 10:47:35 2026 - Gracefully killing worker 2 (pid: 1823704)... +Fri Jan 9 10:47:35 2026 - Gracefully killing worker 1 (pid: 1823703)... +Fri Jan 9 10:47:36 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:47:36 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:47:36 2026 - binary reloading uWSGI... +Fri Jan 9 10:47:36 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:47:36 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:47:36 2026 - found fd 3 mapped to socket 0 (127.0.0.1:42627) +Fri Jan 9 10:47:36 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:47:36 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:47:36 2026] *** +Fri Jan 9 10:47:36 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:47:36 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:47:36 2026 - nodename: ubserver +Fri Jan 9 10:47:36 2026 - machine: x86_64 +Fri Jan 9 10:47:36 2026 - clock source: unix +Fri Jan 9 10:47:36 2026 - pcre jit disabled +Fri Jan 9 10:47:36 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:47:36 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:47:36 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:47:36 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:47:36 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:47:36 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:47:36 2026 - your processes number limit is 61306 +Fri Jan 9 10:47:36 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:47:36 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:47:36 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:47:36 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:47:36 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:47:36 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:47:36 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:41859 (port auto-assigned) fd 4 +Fri Jan 9 10:47:36 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:47:36 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:47:36 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:47:36 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:47:36 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:47:37 2026 - Python main interpreter initialized at 0x7b6cf9552d10 +Fri Jan 9 10:47:37 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:47:37 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:47:37 2026 - python threads support enabled +Fri Jan 9 10:47:37 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:47:37 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:47:37 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:47:37 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:47:37 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:47:37 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:47:37 2026 - WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x7b6cf9552d10 pid: 1782404 (default app) +Fri Jan 9 10:47:37 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:47:37 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:47:37 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:47:37 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:47:37 2026 - spawned uWSGI worker 1 (pid: 1823980, cores: 2) +Fri Jan 9 10:47:37 2026 - spawned uWSGI worker 2 (pid: 1823981, cores: 2) +Fri Jan 9 10:47:37 2026 - spawned uWSGI http 1 (pid: 1823986) +Fri Jan 9 10:47:37 2026 - Python auto-reloader enabled +Fri Jan 9 10:47:46 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:47:46 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:47:46 2026 - gateway "uWSGI http 1" has been buried (pid: 1823986) +Fri Jan 9 10:47:46 2026 - ...gracefully killing workers... +Fri Jan 9 10:47:46 2026 - Gracefully killing worker 2 (pid: 1823981)... +Fri Jan 9 10:47:46 2026 - Gracefully killing worker 1 (pid: 1823980)... +Fri Jan 9 10:47:47 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:47:47 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:47:47 2026 - binary reloading uWSGI... +Fri Jan 9 10:47:47 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:47:47 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:47:47 2026 - found fd 4 mapped to socket 0 (127.0.0.1:41859) +Fri Jan 9 10:47:47 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:47:47 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:47:47 2026] *** +Fri Jan 9 10:47:47 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:47:47 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:47:47 2026 - nodename: ubserver +Fri Jan 9 10:47:47 2026 - machine: x86_64 +Fri Jan 9 10:47:47 2026 - clock source: unix +Fri Jan 9 10:47:47 2026 - pcre jit disabled +Fri Jan 9 10:47:47 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:47:47 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:47:47 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:47:47 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:47:47 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:47:47 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:47:47 2026 - your processes number limit is 61306 +Fri Jan 9 10:47:47 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:47:47 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:47:47 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:47:47 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:47:47 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:47:47 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:47:47 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:42165 (port auto-assigned) fd 3 +Fri Jan 9 10:47:47 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:47:47 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:47:47 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:47:47 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:47:47 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:47:47 2026 - Python main interpreter initialized at 0x7331bf952d10 +Fri Jan 9 10:47:47 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:47:47 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:47:47 2026 - python threads support enabled +Fri Jan 9 10:47:47 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:47:47 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:47:47 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:47:47 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:47:47 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:47:47 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:47:47 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7331bf952d10 pid: 1782404 (default app) +Fri Jan 9 10:47:47 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:47:47 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:47:47 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:47:47 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:47:47 2026 - spawned uWSGI worker 1 (pid: 1824088, cores: 2) +Fri Jan 9 10:47:47 2026 - spawned uWSGI worker 2 (pid: 1824089, cores: 2) +Fri Jan 9 10:47:47 2026 - Python auto-reloader enabled +Fri Jan 9 10:47:47 2026 - spawned uWSGI http 1 (pid: 1824094) +Fri Jan 9 10:47:59 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:47:59 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:47:59 2026 - gateway "uWSGI http 1" has been buried (pid: 1824094) +Fri Jan 9 10:47:59 2026 - ...gracefully killing workers... +Fri Jan 9 10:47:59 2026 - Gracefully killing worker 2 (pid: 1824089)... +Fri Jan 9 10:47:59 2026 - Gracefully killing worker 1 (pid: 1824088)... +Fri Jan 9 10:48:00 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:48:00 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:48:00 2026 - binary reloading uWSGI... +Fri Jan 9 10:48:00 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:48:00 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:48:00 2026 - found fd 3 mapped to socket 0 (127.0.0.1:42165) +Fri Jan 9 10:48:00 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:48:00 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:48:00 2026] *** +Fri Jan 9 10:48:00 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:48:00 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:48:00 2026 - nodename: ubserver +Fri Jan 9 10:48:00 2026 - machine: x86_64 +Fri Jan 9 10:48:00 2026 - clock source: unix +Fri Jan 9 10:48:00 2026 - pcre jit disabled +Fri Jan 9 10:48:00 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:48:00 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:48:00 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:48:00 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:48:00 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:48:00 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:48:00 2026 - your processes number limit is 61306 +Fri Jan 9 10:48:00 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:48:00 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:48:00 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:48:00 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:48:00 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:48:00 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:48:00 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:45333 (port auto-assigned) fd 4 +Fri Jan 9 10:48:00 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:48:00 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:48:00 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:48:00 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:48:00 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:48:00 2026 - Python main interpreter initialized at 0x7e72ee152d10 +Fri Jan 9 10:48:00 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:48:00 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:48:00 2026 - python threads support enabled +Fri Jan 9 10:48:00 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:48:00 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:48:00 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:48:00 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:48:00 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:48:00 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:48:00 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7e72ee152d10 pid: 1782404 (default app) +Fri Jan 9 10:48:00 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:48:00 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:48:00 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:48:00 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:48:00 2026 - spawned uWSGI worker 1 (pid: 1824143, cores: 2) +Fri Jan 9 10:48:00 2026 - spawned uWSGI worker 2 (pid: 1824144, cores: 2) +Fri Jan 9 10:48:00 2026 - spawned uWSGI http 1 (pid: 1824148) +Fri Jan 9 10:48:00 2026 - Python auto-reloader enabled +Fri Jan 9 10:50:08 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:50:08 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:50:08 2026 - gateway "uWSGI http 1" has been buried (pid: 1824148) +Fri Jan 9 10:50:08 2026 - ...gracefully killing workers... +Fri Jan 9 10:50:08 2026 - Gracefully killing worker 2 (pid: 1824144)... +Fri Jan 9 10:50:08 2026 - Gracefully killing worker 1 (pid: 1824143)... +Fri Jan 9 10:50:09 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:50:09 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:50:09 2026 - binary reloading uWSGI... +Fri Jan 9 10:50:09 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:50:09 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:50:09 2026 - found fd 4 mapped to socket 0 (127.0.0.1:45333) +Fri Jan 9 10:50:09 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:50:09 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:50:09 2026] *** +Fri Jan 9 10:50:09 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:50:09 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:50:09 2026 - nodename: ubserver +Fri Jan 9 10:50:09 2026 - machine: x86_64 +Fri Jan 9 10:50:09 2026 - clock source: unix +Fri Jan 9 10:50:09 2026 - pcre jit disabled +Fri Jan 9 10:50:09 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:50:09 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:50:09 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:50:09 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:50:09 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:50:09 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:50:09 2026 - your processes number limit is 61306 +Fri Jan 9 10:50:09 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:50:09 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:50:09 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:50:09 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:50:09 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:50:09 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:50:09 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:45961 (port auto-assigned) fd 3 +Fri Jan 9 10:50:09 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:50:09 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:50:09 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:50:09 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:50:09 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:50:09 2026 - Python main interpreter initialized at 0x78e141d52d10 +Fri Jan 9 10:50:09 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:50:09 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:50:09 2026 - python threads support enabled +Fri Jan 9 10:50:09 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:50:09 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:50:09 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:50:09 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:50:09 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:50:09 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:50:09 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x78e141d52d10 pid: 1782404 (default app) +Fri Jan 9 10:50:09 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:50:09 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:50:09 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:50:09 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:50:09 2026 - spawned uWSGI worker 1 (pid: 1824879, cores: 2) +Fri Jan 9 10:50:09 2026 - spawned uWSGI worker 2 (pid: 1824880, cores: 2) +Fri Jan 9 10:50:09 2026 - spawned uWSGI http 1 (pid: 1824883) +Fri Jan 9 10:50:09 2026 - Python auto-reloader enabled +2026-01-09 10:50:13 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:50:13 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: V4PysTsq/lNT3/wFazWDLWyc0dGuq2JMkrVDkOzmHWSj2Ei3LR... +2026-01-09 10:50:13 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 03b9d5be793ca95eebdac7c887a610f60dfe77f2 +2026-01-09 10:50:13 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 03b9d5be793ca95eebdac7c887a610f60dfe77f2 +2026-01-09 10:50:13 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:50:13 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:50:13 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:50:13 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=大化..., user=WeiJueSen +2026-01-09 10:50:13 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: WeiJueSen +2026-01-09 10:50:13 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['大化'] +2026-01-09 10:50:13 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 10:50:13 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 10:50:13 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 10:50:13 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:50:13 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:50:13 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:50:13 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:50:13 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:50:13 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 10:50:13 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:50:13 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:50:13 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:50:13 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:13 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 0.45秒 +2026-01-09 10:50:13 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:50:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:14 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:50:14 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:50:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:14 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:50:14 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:50:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:14 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:50:14 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:50:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:14 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.15秒 +2026-01-09 10:50:14 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:50:14 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:14 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:50:14 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:50:15 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:15 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.42秒 +2026-01-09 10:50:15 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:50:15 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:15 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:50:15 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:50:15 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:15 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:50:15 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:50:15 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:15 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 10:50:15 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:50:16 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:16 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:50:16 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:50:16 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:16 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:50:16 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:50:16 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:50:16 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:50:16 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:50:16 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:50:16 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:50:16 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 217 条公告 +2026-01-09 10:50:16 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 217 -> 1 条公告 +2026-01-09 10:50:16 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1 -> 1 条公告 +2026-01-09 10:50:16 - gx_gp_monitor.main - INFO - 筛选后剩余 1 条公告 +2026-01-09 10:50:16 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:50:16 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 1, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 216, 'date_filtered': 1083, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='大化瑶族自治县2025年度国土变更(日常变更)调查项目合同公告', publish_date=datetime.datetime(2026, 1, 9, 10, 2, 19), purchase_name='大化瑶族自治县自然资源局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=NSAtgiyTEYUaFq3dcNs6ig==', source_code='ZcyAnnouncement3', source_name='合同公告', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 50, 14, 210634), created_at=None, updated_at=None, content_hash='9270849ec53ce195b3fc4de103ef656a', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 10:50:16 - gx_gp_monitor.notification.wechat - INFO - 企业微信服务初始化完成 +2026-01-09 10:50:16 - gx_gp_monitor.notification.wechat - INFO - 成功获取企业微信访问令牌 +2026-01-09 10:50:16 - gx_gp_monitor.notification.wechat - INFO - Markdown消息发送成功 +{address space usage: 241356800 bytes/230MB} {rss usage: 54054912 bytes/51MB} [pid: 1824880|app: 0|req: 1/1] 113.108.92.100 () {36 vars in 679 bytes} [Fri Jan 9 10:50:13 2026] POST /api/v1/wechat/callback?msg_signature=03b9d5be793ca95eebdac7c887a610f60dfe77f2×tamp=1767927013&nonce=1768112259 => generated 626 bytes in 3651 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 0) +Fri Jan 9 10:50:36 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:50:36 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:50:36 2026 - gateway "uWSGI http 1" has been buried (pid: 1824883) +Fri Jan 9 10:50:36 2026 - ...gracefully killing workers... +Fri Jan 9 10:50:36 2026 - Gracefully killing worker 2 (pid: 1824880)... +Fri Jan 9 10:50:36 2026 - Gracefully killing worker 1 (pid: 1824879)... +Fri Jan 9 10:50:37 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:50:37 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:50:37 2026 - binary reloading uWSGI... +Fri Jan 9 10:50:37 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:50:37 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:50:37 2026 - found fd 3 mapped to socket 0 (127.0.0.1:45961) +Fri Jan 9 10:50:37 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:50:37 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:50:37 2026] *** +Fri Jan 9 10:50:37 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:50:37 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:50:37 2026 - nodename: ubserver +Fri Jan 9 10:50:37 2026 - machine: x86_64 +Fri Jan 9 10:50:37 2026 - clock source: unix +Fri Jan 9 10:50:37 2026 - pcre jit disabled +Fri Jan 9 10:50:37 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:50:37 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:50:37 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:50:37 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:50:37 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:50:37 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:50:37 2026 - your processes number limit is 61306 +Fri Jan 9 10:50:37 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:50:37 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:50:37 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:50:37 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:50:37 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:50:37 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:50:37 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:38249 (port auto-assigned) fd 4 +Fri Jan 9 10:50:37 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:50:37 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:50:37 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:50:37 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:50:37 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:50:37 2026 - Python main interpreter initialized at 0x744f9e152d10 +Fri Jan 9 10:50:37 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:50:37 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:50:37 2026 - python threads support enabled +Fri Jan 9 10:50:37 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:50:37 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:50:37 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:50:37 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:50:38 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:50:38 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:50:38 2026 - WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x744f9e152d10 pid: 1782404 (default app) +Fri Jan 9 10:50:38 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:50:38 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:50:38 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:50:38 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:50:38 2026 - spawned uWSGI worker 1 (pid: 1825004, cores: 2) +Fri Jan 9 10:50:38 2026 - spawned uWSGI worker 2 (pid: 1825005, cores: 2) +Fri Jan 9 10:50:38 2026 - spawned uWSGI http 1 (pid: 1825008) +Fri Jan 9 10:50:38 2026 - Python auto-reloader enabled +Fri Jan 9 10:52:41 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:52:41 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:52:41 2026 - gateway "uWSGI http 1" has been buried (pid: 1825008) +Fri Jan 9 10:52:41 2026 - ...gracefully killing workers... +Fri Jan 9 10:52:41 2026 - Gracefully killing worker 2 (pid: 1825005)... +Fri Jan 9 10:52:41 2026 - Gracefully killing worker 1 (pid: 1825004)... +Fri Jan 9 10:52:42 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:52:42 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:52:42 2026 - binary reloading uWSGI... +Fri Jan 9 10:52:42 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:52:42 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:52:42 2026 - found fd 4 mapped to socket 0 (127.0.0.1:38249) +Fri Jan 9 10:52:42 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:52:42 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:52:42 2026] *** +Fri Jan 9 10:52:42 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:52:42 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:52:42 2026 - nodename: ubserver +Fri Jan 9 10:52:42 2026 - machine: x86_64 +Fri Jan 9 10:52:42 2026 - clock source: unix +Fri Jan 9 10:52:42 2026 - pcre jit disabled +Fri Jan 9 10:52:42 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:52:42 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:52:42 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:52:42 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:52:42 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:52:42 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:52:42 2026 - your processes number limit is 61306 +Fri Jan 9 10:52:42 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:52:42 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:52:42 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:52:42 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:52:42 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:52:42 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:52:42 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:40383 (port auto-assigned) fd 3 +Fri Jan 9 10:52:42 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:52:42 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:52:42 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:52:42 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:52:42 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:52:42 2026 - Python main interpreter initialized at 0x7125be152d10 +Fri Jan 9 10:52:42 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:52:42 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:52:42 2026 - python threads support enabled +Fri Jan 9 10:52:42 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:52:42 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:52:42 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:52:42 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:52:42 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:52:42 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:52:42 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7125be152d10 pid: 1782404 (default app) +Fri Jan 9 10:52:42 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:52:42 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:52:42 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:52:42 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:52:42 2026 - spawned uWSGI worker 1 (pid: 1825625, cores: 2) +Fri Jan 9 10:52:42 2026 - spawned uWSGI worker 2 (pid: 1825626, cores: 2) +Fri Jan 9 10:52:42 2026 - Python auto-reloader enabled +Fri Jan 9 10:52:42 2026 - spawned uWSGI http 1 (pid: 1825630) +Fri Jan 9 10:52:55 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:52:55 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:52:55 2026 - gateway "uWSGI http 1" has been buried (pid: 1825630) +Fri Jan 9 10:52:55 2026 - ...gracefully killing workers... +Fri Jan 9 10:52:55 2026 - Gracefully killing worker 2 (pid: 1825626)... +Fri Jan 9 10:52:55 2026 - Gracefully killing worker 1 (pid: 1825625)... +Fri Jan 9 10:52:56 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:52:56 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:52:56 2026 - binary reloading uWSGI... +Fri Jan 9 10:52:56 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:52:56 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:52:56 2026 - found fd 3 mapped to socket 0 (127.0.0.1:40383) +Fri Jan 9 10:52:56 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:52:56 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:52:56 2026] *** +Fri Jan 9 10:52:56 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:52:56 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:52:56 2026 - nodename: ubserver +Fri Jan 9 10:52:56 2026 - machine: x86_64 +Fri Jan 9 10:52:56 2026 - clock source: unix +Fri Jan 9 10:52:56 2026 - pcre jit disabled +Fri Jan 9 10:52:56 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:52:56 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:52:56 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:52:56 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:52:56 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:52:56 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:52:56 2026 - your processes number limit is 61306 +Fri Jan 9 10:52:56 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:52:56 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:52:56 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:52:56 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:52:56 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:52:56 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:52:56 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:33369 (port auto-assigned) fd 4 +Fri Jan 9 10:52:56 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:52:56 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:52:56 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:52:56 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:52:56 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:52:56 2026 - Python main interpreter initialized at 0x7b887f752d10 +Fri Jan 9 10:52:56 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:52:56 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:52:56 2026 - python threads support enabled +Fri Jan 9 10:52:56 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:52:56 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:52:56 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:52:56 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:52:56 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:52:56 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:52:56 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7b887f752d10 pid: 1782404 (default app) +Fri Jan 9 10:52:56 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:52:56 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:52:56 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:52:56 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:52:56 2026 - spawned uWSGI worker 1 (pid: 1825660, cores: 2) +Fri Jan 9 10:52:56 2026 - spawned uWSGI worker 2 (pid: 1825661, cores: 2) +Fri Jan 9 10:52:56 2026 - Python auto-reloader enabled +Fri Jan 9 10:52:56 2026 - spawned uWSGI http 1 (pid: 1825666) +Fri Jan 9 10:53:19 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:53:19 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:53:19 2026 - gateway "uWSGI http 1" has been buried (pid: 1825666) +Fri Jan 9 10:53:19 2026 - ...gracefully killing workers... +Fri Jan 9 10:53:19 2026 - Gracefully killing worker 1 (pid: 1825660)... +Fri Jan 9 10:53:19 2026 - Gracefully killing worker 2 (pid: 1825661)... +Fri Jan 9 10:53:20 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:53:20 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:53:20 2026 - binary reloading uWSGI... +Fri Jan 9 10:53:20 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:53:20 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:53:20 2026 - found fd 4 mapped to socket 0 (127.0.0.1:33369) +Fri Jan 9 10:53:20 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:53:20 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:53:20 2026] *** +Fri Jan 9 10:53:20 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:53:20 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:53:20 2026 - nodename: ubserver +Fri Jan 9 10:53:20 2026 - machine: x86_64 +Fri Jan 9 10:53:20 2026 - clock source: unix +Fri Jan 9 10:53:20 2026 - pcre jit disabled +Fri Jan 9 10:53:20 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:53:20 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:53:20 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:53:20 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:53:20 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:53:20 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:53:20 2026 - your processes number limit is 61306 +Fri Jan 9 10:53:20 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:53:20 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:53:20 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:53:20 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:53:20 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:53:20 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:53:20 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:32943 (port auto-assigned) fd 3 +Fri Jan 9 10:53:20 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:53:20 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:53:20 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:53:20 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:53:20 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:53:20 2026 - Python main interpreter initialized at 0x7f6714552d10 +Fri Jan 9 10:53:20 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:53:20 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:53:20 2026 - python threads support enabled +Fri Jan 9 10:53:20 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:53:20 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:53:20 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:53:20 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:53:20 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:53:20 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:53:20 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7f6714552d10 pid: 1782404 (default app) +Fri Jan 9 10:53:20 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:53:20 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:53:20 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:53:20 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:53:20 2026 - spawned uWSGI worker 1 (pid: 1825809, cores: 2) +Fri Jan 9 10:53:20 2026 - spawned uWSGI worker 2 (pid: 1825810, cores: 2) +Fri Jan 9 10:53:20 2026 - spawned uWSGI http 1 (pid: 1825814) +Fri Jan 9 10:53:20 2026 - Python auto-reloader enabled +Fri Jan 9 10:53:45 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:53:45 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:53:45 2026 - gateway "uWSGI http 1" has been buried (pid: 1825814) +Fri Jan 9 10:53:45 2026 - ...gracefully killing workers... +Fri Jan 9 10:53:45 2026 - Gracefully killing worker 1 (pid: 1825809)... +Fri Jan 9 10:53:45 2026 - Gracefully killing worker 2 (pid: 1825810)... +Fri Jan 9 10:53:46 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:53:46 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:53:46 2026 - binary reloading uWSGI... +Fri Jan 9 10:53:46 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:53:46 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:53:46 2026 - found fd 3 mapped to socket 0 (127.0.0.1:32943) +Fri Jan 9 10:53:46 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:53:46 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:53:46 2026] *** +Fri Jan 9 10:53:46 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:53:46 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:53:46 2026 - nodename: ubserver +Fri Jan 9 10:53:46 2026 - machine: x86_64 +Fri Jan 9 10:53:46 2026 - clock source: unix +Fri Jan 9 10:53:46 2026 - pcre jit disabled +Fri Jan 9 10:53:46 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:53:46 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:53:46 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:53:46 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:53:46 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:53:46 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:53:46 2026 - your processes number limit is 61306 +Fri Jan 9 10:53:46 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:53:46 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:53:46 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:53:46 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:53:46 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:53:46 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:53:46 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:45363 (port auto-assigned) fd 4 +Fri Jan 9 10:53:46 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:53:46 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:53:46 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:53:46 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:53:46 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:53:46 2026 - Python main interpreter initialized at 0x7c762f152d10 +Fri Jan 9 10:53:46 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:53:46 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:53:46 2026 - python threads support enabled +Fri Jan 9 10:53:46 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:53:46 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:53:46 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:53:46 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:53:46 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:53:46 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:53:46 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7c762f152d10 pid: 1782404 (default app) +Fri Jan 9 10:53:46 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:53:46 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:53:46 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:53:46 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:53:46 2026 - spawned uWSGI worker 1 (pid: 1825892, cores: 2) +Fri Jan 9 10:53:46 2026 - spawned uWSGI worker 2 (pid: 1825893, cores: 2) +Fri Jan 9 10:53:46 2026 - spawned uWSGI http 1 (pid: 1825897) +Fri Jan 9 10:53:46 2026 - Python auto-reloader enabled +2026-01-09 10:54:03 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:54:03 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: Uo4QU84T+D2cpkopqB0HZAhYIxAzg7bxLwDzgVH/QDLap7sKHL... +2026-01-09 10:54:03 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: b100a5fed3e9702af41bd289efb1160218ea3759 +2026-01-09 10:54:03 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: b100a5fed3e9702af41bd289efb1160218ea3759 +2026-01-09 10:54:03 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:54:03 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:54:03 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:54:03 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=大化..., user=WeiJueSen +2026-01-09 10:54:03 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: WeiJueSen +2026-01-09 10:54:03 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['大化'] +2026-01-09 10:54:03 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 10:54:03 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 10:54:03 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 10:54:03 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 10:54:03 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 10:54:03 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 10:54:03 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 10:54:03 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 10:54:03 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 10:54:03 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 10:54:03 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 10:54:03 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 10:54:08 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 10:54:08 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: Uo4QU84T+D2cpkopqB0HZAhYIxAzg7bxLwDzgVH/QDLap7sKHL... +2026-01-09 10:54:08 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: b100a5fed3e9702af41bd289efb1160218ea3759 +2026-01-09 10:54:08 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: b100a5fed3e9702af41bd289efb1160218ea3759 +2026-01-09 10:54:08 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 10:54:08 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 10:54:08 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 10:54:08 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=大化..., user=WeiJueSen +2026-01-09 10:54:08 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: WeiJueSen +2026-01-09 10:54:08 - gx_gp_monitor.wechat.message_handler - INFO - 检测到重复请求: user=WeiJueSen, content=大化... +{address space usage: 247705600 bytes/236MB} {rss usage: 59969536 bytes/57MB} [pid: 1825892|app: 0|req: 2/1] 106.55.201.217 () {36 vars in 679 bytes} [Fri Jan 9 10:54:08 2026] POST /api/v1/wechat/callback?msg_signature=b100a5fed3e9702af41bd289efb1160218ea3759×tamp=1767927243&nonce=1768396874 => generated 626 bytes in 1 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 1) +2026-01-09 10:54:34 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:34 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.40秒 +2026-01-09 10:54:34 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 10:54:34 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:34 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.22秒 +2026-01-09 10:54:34 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 10:54:34 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:34 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.24秒 +2026-01-09 10:54:34 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 10:54:34 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:34 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:54:34 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 10:54:35 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:35 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:54:35 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 10:54:35 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:35 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 10:54:35 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 10:54:35 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:35 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.44秒 +2026-01-09 10:54:35 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 10:54:35 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:35 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:54:35 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 10:54:36 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:36 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 10:54:36 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 10:54:36 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:36 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:54:36 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 10:54:36 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:36 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.16秒 +2026-01-09 10:54:36 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 10:54:36 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:36 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 10:54:36 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 10:54:36 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 10:54:36 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.21秒 +2026-01-09 10:54:36 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 10:54:36 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 10:54:36 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 10:54:36 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 220 条公告 +2026-01-09 10:54:36 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 220 -> 1 条公告 +2026-01-09 10:54:36 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1 -> 1 条公告 +2026-01-09 10:54:36 - gx_gp_monitor.main - INFO - 筛选后剩余 1 条公告 +2026-01-09 10:54:36 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 10:54:36 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 1, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 219, 'date_filtered': 1080, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='大化瑶族自治县2025年度国土变更(日常变更)调查项目合同公告', publish_date=datetime.datetime(2026, 1, 9, 10, 2, 19), purchase_name='大化瑶族自治县自然资源局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=NSAtgiyTEYUaFq3dcNs6ig==', source_code='ZcyAnnouncement3', source_name='合同公告', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 10, 54, 34, 478758), created_at=None, updated_at=None, content_hash='9270849ec53ce195b3fc4de103ef656a', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 10:54:36 - gx_gp_monitor.notification.wechat - INFO - 企业微信服务初始化完成 +2026-01-09 10:54:37 - gx_gp_monitor.notification.wechat - INFO - 成功获取企业微信访问令牌 +2026-01-09 10:54:37 - gx_gp_monitor.notification.wechat - INFO - Markdown消息发送成功 +{address space usage: 241319936 bytes/230MB} {rss usage: 53989376 bytes/51MB} [pid: 1825892|app: 0|req: 2/2] 183.47.117.101 () {36 vars in 678 bytes} [Fri Jan 9 10:54:03 2026] POST /api/v1/wechat/callback?msg_signature=b100a5fed3e9702af41bd289efb1160218ea3759×tamp=1767927243&nonce=1768396874 => generated 626 bytes in 33741 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 0) +Fri Jan 9 10:55:15 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:55:15 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:55:15 2026 - gateway "uWSGI http 1" has been buried (pid: 1825897) +Fri Jan 9 10:55:15 2026 - ...gracefully killing workers... +Fri Jan 9 10:55:15 2026 - Gracefully killing worker 1 (pid: 1825892)... +Fri Jan 9 10:55:15 2026 - Gracefully killing worker 2 (pid: 1825893)... +Fri Jan 9 10:55:16 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:55:16 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:55:16 2026 - binary reloading uWSGI... +Fri Jan 9 10:55:16 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:55:16 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:55:16 2026 - found fd 4 mapped to socket 0 (127.0.0.1:45363) +Fri Jan 9 10:55:16 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:55:16 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:55:16 2026] *** +Fri Jan 9 10:55:16 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:55:16 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:55:16 2026 - nodename: ubserver +Fri Jan 9 10:55:16 2026 - machine: x86_64 +Fri Jan 9 10:55:16 2026 - clock source: unix +Fri Jan 9 10:55:16 2026 - pcre jit disabled +Fri Jan 9 10:55:16 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:55:16 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:55:16 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:55:16 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:55:16 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:55:16 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:55:16 2026 - your processes number limit is 61306 +Fri Jan 9 10:55:16 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:55:16 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:55:16 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:55:16 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:55:16 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:55:16 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:55:16 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:36675 (port auto-assigned) fd 3 +Fri Jan 9 10:55:16 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:55:16 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:55:16 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:55:16 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:55:16 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:55:16 2026 - Python main interpreter initialized at 0x7af140b52d10 +Fri Jan 9 10:55:16 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:55:16 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:55:16 2026 - python threads support enabled +Fri Jan 9 10:55:16 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:55:16 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:55:16 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:55:16 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:55:16 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:55:16 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:55:16 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7af140b52d10 pid: 1782404 (default app) +Fri Jan 9 10:55:16 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:55:16 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:55:16 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:55:16 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:55:16 2026 - spawned uWSGI worker 1 (pid: 1826499, cores: 2) +Fri Jan 9 10:55:16 2026 - spawned uWSGI worker 2 (pid: 1826500, cores: 2) +Fri Jan 9 10:55:16 2026 - spawned uWSGI http 1 (pid: 1826503) +Fri Jan 9 10:55:16 2026 - Python auto-reloader enabled +Fri Jan 9 10:55:33 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:55:33 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:55:33 2026 - gateway "uWSGI http 1" has been buried (pid: 1826503) +Fri Jan 9 10:55:33 2026 - ...gracefully killing workers... +Fri Jan 9 10:55:33 2026 - Gracefully killing worker 2 (pid: 1826500)... +Fri Jan 9 10:55:33 2026 - Gracefully killing worker 1 (pid: 1826499)... +Fri Jan 9 10:55:34 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:55:34 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:55:34 2026 - binary reloading uWSGI... +Fri Jan 9 10:55:34 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:55:34 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:55:34 2026 - found fd 3 mapped to socket 0 (127.0.0.1:36675) +Fri Jan 9 10:55:34 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:55:34 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:55:34 2026] *** +Fri Jan 9 10:55:34 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:55:34 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:55:34 2026 - nodename: ubserver +Fri Jan 9 10:55:34 2026 - machine: x86_64 +Fri Jan 9 10:55:34 2026 - clock source: unix +Fri Jan 9 10:55:34 2026 - pcre jit disabled +Fri Jan 9 10:55:34 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:55:34 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:55:34 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:55:34 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:55:34 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:55:34 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:55:34 2026 - your processes number limit is 61306 +Fri Jan 9 10:55:34 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:55:34 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:55:34 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:55:34 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:55:34 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:55:34 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:55:34 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:39711 (port auto-assigned) fd 4 +Fri Jan 9 10:55:34 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:55:34 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:55:34 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:55:34 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:55:34 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:55:34 2026 - Python main interpreter initialized at 0x7f31b8f52d10 +Fri Jan 9 10:55:34 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:55:34 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:55:34 2026 - python threads support enabled +Fri Jan 9 10:55:34 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:55:34 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:55:34 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:55:34 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:55:34 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:55:34 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:55:34 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x7f31b8f52d10 pid: 1782404 (default app) +Fri Jan 9 10:55:34 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:55:34 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:55:34 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:55:34 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:55:34 2026 - spawned uWSGI worker 1 (pid: 1826565, cores: 2) +Fri Jan 9 10:55:34 2026 - spawned uWSGI worker 2 (pid: 1826566, cores: 2) +Fri Jan 9 10:55:34 2026 - spawned uWSGI http 1 (pid: 1826569) +Fri Jan 9 10:55:34 2026 - Python auto-reloader enabled +Fri Jan 9 10:56:19 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:56:19 2026 - [uwsgi-python-reloader] module/file /home/v6ole/pyproject/GX-gp-notify/gx_gp_monitor/wechat/message_handler.py has been modified +Fri Jan 9 10:56:19 2026 - gateway "uWSGI http 1" has been buried (pid: 1826569) +Fri Jan 9 10:56:19 2026 - ...gracefully killing workers... +Fri Jan 9 10:56:19 2026 - Gracefully killing worker 2 (pid: 1826566)... +Fri Jan 9 10:56:19 2026 - Gracefully killing worker 1 (pid: 1826565)... +Fri Jan 9 10:56:20 2026 - worker 1 buried after 1 seconds +Fri Jan 9 10:56:20 2026 - worker 2 buried after 1 seconds +Fri Jan 9 10:56:20 2026 - binary reloading uWSGI... +Fri Jan 9 10:56:20 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:56:20 2026 - closing all non-uwsgi socket fds > 2 (max_fd = 1024)... +Fri Jan 9 10:56:20 2026 - found fd 4 mapped to socket 0 (127.0.0.1:39711) +Fri Jan 9 10:56:20 2026 - running /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +[uWSGI] getting INI configuration from /home/v6ole/pyproject/GX-gp-notify/uwsgi_wechat.ini +Fri Jan 9 10:56:20 2026 - *** Starting uWSGI 2.0.31 (64bit) on [Fri Jan 9 10:56:20 2026] *** +Fri Jan 9 10:56:20 2026 - compiled with version: 14.2.0 on 06 January 2026 09:35:56 +Fri Jan 9 10:56:20 2026 - os: Linux-6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 +Fri Jan 9 10:56:20 2026 - nodename: ubserver +Fri Jan 9 10:56:20 2026 - machine: x86_64 +Fri Jan 9 10:56:20 2026 - clock source: unix +Fri Jan 9 10:56:20 2026 - pcre jit disabled +Fri Jan 9 10:56:20 2026 - detected number of CPU cores: 12 +Fri Jan 9 10:56:20 2026 - current working directory: /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:56:20 2026 - detected binary path: /home/v6ole/pyproject/GX-gp-notify/venv/bin/uwsgi +Fri Jan 9 10:56:20 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:56:20 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:56:20 2026 - chdir() to /home/v6ole/pyproject/GX-gp-notify +Fri Jan 9 10:56:20 2026 - your processes number limit is 61306 +Fri Jan 9 10:56:20 2026 - your memory page size is 4096 bytes +Fri Jan 9 10:56:20 2026 - *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** +Fri Jan 9 10:56:20 2026 - detected max file descriptor number: 1024 +Fri Jan 9 10:56:20 2026 - lock engine: pthread robust mutexes +Fri Jan 9 10:56:20 2026 - thunder lock: disabled (you can enable it with --thunder-lock) +Fri Jan 9 10:56:20 2026 - uWSGI http bound on 0.0.0.0:18001 # 指定 uWSGI 监听的 HTTP 地址和端口 fd 5 +Fri Jan 9 10:56:20 2026 - uwsgi socket 0 bound to TCP address 127.0.0.1:43283 (port auto-assigned) fd 3 +Fri Jan 9 10:56:20 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:56:20 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:56:20 2026 - Python version: 3.13.11 | packaged by Anaconda, Inc. | (main, Dec 10 2025, 21:39:52) [GCC 14.3.0] +Fri Jan 9 10:56:20 2026 - PEP 405 virtualenv detected: /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:56:20 2026 - Set PythonHome to /home/v6ole/pyproject/GX-gp-notify/venv +Fri Jan 9 10:56:20 2026 - Python main interpreter initialized at 0x70e078152d10 +Fri Jan 9 10:56:20 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:56:20 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:56:20 2026 - python threads support enabled +Fri Jan 9 10:56:20 2026 - your server socket listen backlog is limited to 100 connections +Fri Jan 9 10:56:20 2026 - your mercy for graceful operations on workers is 60 seconds +Fri Jan 9 10:56:20 2026 - mapped 250032 bytes (244 KB) for 4 cores +Fri Jan 9 10:56:20 2026 - *** Operational MODE: preforking+threaded *** +2026-01-09 10:56:20 - gx_gp_monitor.wechat.message_handler - INFO - 企业微信消息处理器初始化完成 +2026-01-09 10:56:20 - gx_gp_monitor.wechat.callback_server - INFO - 企业微信回调服务器初始化完成 +Fri Jan 9 10:56:20 2026 - WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x70e078152d10 pid: 1782404 (default app) +Fri Jan 9 10:56:20 2026 - uWSGI running as root, you can use --uid/--gid/--chroot options +Fri Jan 9 10:56:20 2026 - *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** +Fri Jan 9 10:56:20 2026 - *** uWSGI is running in multiple interpreter mode *** +Fri Jan 9 10:56:20 2026 - gracefully (RE)spawned uWSGI master process (pid: 1782404) +Fri Jan 9 10:56:20 2026 - spawned uWSGI worker 1 (pid: 1826904, cores: 2) +Fri Jan 9 10:56:20 2026 - spawned uWSGI worker 2 (pid: 1826905, cores: 2) +Fri Jan 9 10:56:20 2026 - spawned uWSGI http 1 (pid: 1826908) +Fri Jan 9 10:56:20 2026 - Python auto-reloader enabled +2026-01-09 11:02:44 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 11:02:44 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: vfWd53Wgci4LR2cr4AKLqHvpLtiIs8tYOmScdA5SJMkB8UFC+5... +2026-01-09 11:02:44 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: ff509b0226f285b5409b13fed5a910e818fb4ac0 +2026-01-09 11:02:44 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: ff509b0226f285b5409b13fed5a910e818fb4ac0 +2026-01-09 11:02:44 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 11:02:44 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 11:02:44 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 11:02:44 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=大化..., user=WeiJueSen +2026-01-09 11:02:44 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: WeiJueSen +2026-01-09 11:02:44 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['大化'] +2026-01-09 11:02:44 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 11:02:44 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 11:02:44 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 11:02:44 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 11:02:44 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 11:02:44 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 11:02:44 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 11:02:44 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 11:02:44 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 11:02:44 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 11:02:44 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 11:02:44 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 11:02:49 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472 +2026-01-09 11:02:49 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: vfWd53Wgci4LR2cr4AKLqHvpLtiIs8tYOmScdA5SJMkB8UFC+5... +2026-01-09 11:02:49 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: ff509b0226f285b5409b13fed5a910e818fb4ac0 +2026-01-09 11:02:49 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: ff509b0226f285b5409b13fed5a910e818fb4ac0 +2026-01-09 11:02:49 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True +2026-01-09 11:02:49 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名... +2026-01-09 11:02:49 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text +2026-01-09 11:02:49 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=大化..., user=WeiJueSen +2026-01-09 11:02:49 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 大化, user: WeiJueSen +2026-01-09 11:02:49 - gx_gp_monitor.wechat.message_handler - INFO - 用户 WeiJueSen 关键词搜索: ['大化'] +2026-01-09 11:02:49 - gx_gp_monitor.main - INFO - === 广西政府采购网公告监控系统启动 === +2026-01-09 11:02:49 - gx_gp_monitor.main - INFO - 版本: 1.0.0 +2026-01-09 11:02:49 - gx_gp_monitor.main - INFO - 配置文件: 默认配置 +2026-01-09 11:02:49 - gx_gp_monitor.core.reliability - INFO - 健康检查通过 +2026-01-09 11:02:49 - gx_gp_monitor.core.database - INFO - 数据库连接池初始化成功 +2026-01-09 11:02:49 - gx_gp_monitor.core.database - INFO - 开始初始化数据库表结构 +2026-01-09 11:02:49 - gx_gp_monitor.core.database - INFO - 数据库表结构初始化完成 +2026-01-09 11:02:49 - gx_gp_monitor.storage.postgresql - INFO - 存储初始化完成 +2026-01-09 11:02:49 - gx_gp_monitor.main - INFO - 应用初始化完成 +2026-01-09 11:02:49 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True) +2026-01-09 11:02:49 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源 +2026-01-09 11:02:49 - gx_gp_monitor - INFO - 开始爬取 采购公告 +2026-01-09 11:02:50 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:50 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 0.36秒 +2026-01-09 11:02:50 - gx_gp_monitor - INFO - 开始爬取 结果公告 +2026-01-09 11:02:50 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:50 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 11:02:50 - gx_gp_monitor - INFO - 开始爬取 合同公告 +2026-01-09 11:02:50 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:50 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 11:02:50 - gx_gp_monitor - INFO - 开始爬取 更正公告 +2026-01-09 11:02:50 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:50 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.27秒 +2026-01-09 11:02:50 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示 +2026-01-09 11:02:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:51 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 11:02:51 - gx_gp_monitor - INFO - 开始爬取 单一来源公示 +2026-01-09 11:02:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:51 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.20秒 +2026-01-09 11:02:51 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示 +2026-01-09 11:02:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:51 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.34秒 +2026-01-09 11:02:51 - gx_gp_monitor - INFO - 开始爬取 履约验收公示 +2026-01-09 11:02:51 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:51 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.17秒 +2026-01-09 11:02:51 - gx_gp_monitor - INFO - 开始爬取 工程类公告 +2026-01-09 11:02:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:52 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.25秒 +2026-01-09 11:02:52 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告 +2026-01-09 11:02:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:52 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.19秒 +2026-01-09 11:02:52 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告 +2026-01-09 11:02:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:52 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 11:02:52 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告 +2026-01-09 11:02:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:52 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.18秒 +2026-01-09 11:02:52 - gx_gp_monitor - INFO - 开始爬取 采购意向公开 +2026-01-09 11:02:52 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录 +2026-01-09 11:02:52 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.23秒 +2026-01-09 11:02:52 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告 +2026-01-09 11:02:52 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告 +2026-01-09 11:02:52 - gx_gp_monitor.main - INFO - 手动搜索模式:跳过数据库保存 +2026-01-09 11:02:52 - gx_gp_monitor.filters.filters - INFO - 日期筛选: 1300 -> 237 条公告 +2026-01-09 11:02:52 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 237 -> 1 条公告 +2026-01-09 11:02:52 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1 -> 1 条公告 +2026-01-09 11:02:52 - gx_gp_monitor.main - INFO - 筛选后剩余 1 条公告 +2026-01-09 11:02:52 - gx_gp_monitor.main - INFO - 手动爬取模式:跳过筛选后公告的数据库保存 +2026-01-09 11:02:52 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 1, 'saved': 0, 'markdown_generated': False, 'notification_sent': True, 'filter_stats': {'keyword_filtered': 236, 'date_filtered': 1063, 'duplicate_filtered': 0, 'source_filtered': 0}, 'filtered_announcements': [Announcement(id=None, title='大化瑶族自治县2025年度国土变更(日常变更)调查项目合同公告', publish_date=datetime.datetime(2026, 1, 9, 10, 2, 19), purchase_name='大化瑶族自治县自然资源局', content_url='https://zfcg.gxzf.gov.cn/site/detail?parentId=66485&articleId=NSAtgiyTEYUaFq3dcNs6ig==', source_code='ZcyAnnouncement3', source_name='合同公告', announcement_type=, crawled_at=datetime.datetime(2026, 1, 9, 11, 2, 50, 521373), created_at=None, updated_at=None, content_hash='9270849ec53ce195b3fc4de103ef656a', keyword_matched=True, date_filtered=True, is_new=True, is_today=True)]} +2026-01-09 11:02:52 - gx_gp_monitor.notification.wechat - INFO - 企业微信服务初始化完成 +2026-01-09 11:02:53 - gx_gp_monitor.notification.wechat - INFO - 成功获取企业微信访问令牌 +2026-01-09 11:02:53 - gx_gp_monitor.notification.wechat - INFO - Markdown消息发送成功 +{address space usage: 240279552 bytes/229MB} {rss usage: 53104640 bytes/50MB} [pid: 1826904|app: 0|req: 1/1] 106.55.202.215 () {36 vars in 679 bytes} [Fri Jan 9 11:02:49 2026] POST /api/v1/wechat/callback?msg_signature=ff509b0226f285b5409b13fed5a910e818fb4ac0×tamp=1767927764&nonce=1768585088 => generated 626 bytes in 3710 msecs (HTTP/1.1 200) 2 headers in 80 bytes (1 switches on core 0) +Fri Jan 9 11:03:14 2026 - *** HARAKIRI ON WORKER 2 (pid: 1826905, try: 1, graceful: yes) *** +Fri Jan 9 11:03:14 2026 - HARAKIRI !!! worker 2 status !!! +Fri Jan 9 11:03:14 2026 - HARAKIRI [core 0] 183.47.98.168 - POST /api/v1/wechat/callback?msg_signature=ff509b0226f285b5409b13fed5a910e818fb4ac0×tamp=1767927764&nonce=1768585088 since 1767927764 +Fri Jan 9 11:03:14 2026 - HARAKIRI !!! end of worker 2 status !!! +Fri Jan 9 11:03:14 2026 - HARAKIRI triggered by worker 2 core 0 !!! +Fri Jan 9 11:03:15 2026 - DAMN ! worker 2 (pid: 1826905) died, killed by signal 9 :( trying respawn ... +Fri Jan 9 11:03:15 2026 - Respawned uWSGI worker 2 (new pid: 1829122) diff --git a/onu.md b/onu.md index b412db0..cfef608 100644 --- a/onu.md +++ b/onu.md @@ -1,6 +1,6 @@ 📋 关键词搜索: `未知` - 总公告数: `0` -**更新时间: 2026-01-08 23:41:28** +**更新时间: 2026-01-09 09:14:30** ## 无匹配公告 diff --git a/test_latest_news_flow.py b/test_latest_news_flow.py new file mode 100644 index 0000000..27c331f --- /dev/null +++ b/test_latest_news_flow.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +""" +测试最新公告两步流程功能 +""" + +import sys +import os + +# 添加项目路径 +sys.path.insert(0, os.path.dirname(__file__)) + +try: + from gx_gp_monitor.wechat.message_handler import WeChatMessageHandler + from gx_gp_monitor.core.config_manager import load_config + + def demo_latest_news_flow(): + """演示最新公告功能流程""" + load_config() + handler = WeChatMessageHandler() + + print("🚀 最新公告功能演示") + print("=" * 50) + + # 步骤1: 点击"最新公告"菜单 + print("📱 步骤1: 用户点击'最新公告'菜单") + step1_result = handler._handle_latest_news('demo_user') + print("✅ 系统响应: 显示公告来源选择菜单") + print() + + # 步骤2: 用户选择采购公告 + print("📱 步骤2: 用户发送'1'选择采购公告") + step2_result = handler._handle_latest_news_by_source('1', 'demo_user') + print("✅ 系统响应: 显示采购公告最新10条") + print() + + # 步骤3: 用户选择查看全部 + print("📱 步骤3: 用户发送'全部'查看所有公告") + step3_result = handler._handle_latest_news_by_source('全部', 'demo_user') + print("✅ 系统响应: 显示全部来源最新10条公告") + print() + + print("🎯 功能特点:") + print("• 📋 两步交互: 先选择来源,再显示内容") + print("• 🎛️ 9种来源: 覆盖所有公告类型") + print("• 📊 智能排序: 按时间倒序显示") + print("• 💡 用户友好: 清晰的数字选择界面") + print() + + print("📝 使用方法:") + print("1. 点击企业微信菜单中的'最新公告'") + print("2. 系统显示9种公告来源选项") + print("3. 发送对应数字(1-9)或'全部'查看") + print("4. 系统显示该来源的最新10条公告") + + print("\n✅ 最新公告功能升级完成!") + + if __name__ == "__main__": + demo_latest_news_flow() + +except ImportError as e: + print(f"❌ 导入失败: {e}", file=sys.stderr) + sys.exit(1) +except Exception as e: + print(f"❌ 演示失败: {e}", file=sys.stderr) + sys.exit(1) diff --git a/uwsgi-wechat.pid b/uwsgi-wechat.pid index 5d0f8cd..5acf379 100644 --- a/uwsgi-wechat.pid +++ b/uwsgi-wechat.pid @@ -1 +1 @@ -1616302 +1782404