feat: 新增跨时区支持并完善定时任务调度 (#127)

* feat: 新增跨时区支持

* perf: 优化代码

* fix: 修复测试

* perf: 优化调度器日志打印
This commit is contained in:
insistence
2026-09-12 17:01:05 +08:00
committed by GitHub
parent b05614569f
commit 726883f68a
259 changed files with 14255 additions and 4480 deletions
@@ -119,11 +119,6 @@ router = APIRouterPro(prefix='/{plugin_id}', tags=['{plugin_id}'])
@router.get('/ping')
async def ping() -> dict[str, str]:
\"\"\"
插件探活接口。
:return: 插件探活结果
\"\"\"
return {service_class_name}Service.ping()
"""
@@ -145,56 +140,26 @@ router = APIRouterPro(prefix='/{plugin_id}', tags=['{plugin_id}'])
@router.get('/ping')
async def ping() -> dict[str, str]:
\"\"\"
插件探活接口。
:return: 插件探活结果
\"\"\"
return {service_class_name}Service.ping()
@router.get('/items')
async def list_items(keyword: str = '') -> dict[str, object]:
\"\"\"
查询示例数据列表。
:param keyword: 名称关键字
:return: 示例数据分页结果
\"\"\"
return {service_class_name}Service.list_items(keyword)
@router.post('/items')
async def create_item(payload: dict[str, object]) -> dict[str, object]:
\"\"\"
创建示例数据。
:param payload: 示例数据负载
:return: 创建后的示例数据
\"\"\"
return {service_class_name}Service.create_item(payload)
@router.put('/items/{{item_id}}')
async def update_item(item_id: int, payload: dict[str, object]) -> dict[str, object]:
\"\"\"
更新示例数据。
:param item_id: 示例数据ID
:param payload: 示例数据负载
:return: 更新后的示例数据
\"\"\"
return {service_class_name}Service.update_item(item_id, payload)
@router.delete('/items/{{item_id}}')
async def delete_item(item_id: int) -> dict[str, object]:
\"\"\"
删除示例数据。
:param item_id: 示例数据ID
:return: 删除结果
\"\"\"
return {service_class_name}Service.delete_item(item_id)
"""
@@ -2,7 +2,6 @@ import base64
import hashlib
import re
from dataclasses import dataclass, field
from datetime import datetime
from pathlib import Path
from typing import Any
@@ -10,6 +9,7 @@ import yaml
from cli.exit_codes import RUNTIME_ERROR, SUCCESS
from plugins.core.utils import validate_plugin_id_value
from utils.time_util import TimezoneUtil
DEPENDENCY_OPERATOR_PATTERN = re.compile(r'==|!=|>=|<=|=|>|<|\^|~')
PYTHON_PACKAGE_SEPARATOR_PATTERN = re.compile(r'[-_.]+')
@@ -283,7 +283,7 @@ class PluginDependencyLockfileTemplateBuilder:
:param offline_dir: 离线制品根目录
:return: 锁文件模板
"""
generated_at = datetime.now().astimezone().isoformat()
generated_at = TimezoneUtil.format_rfc3339(TimezoneUtil.utc_now())
dependencies = manifest.dependencies
artifact_resolver = PluginDependencyOfflineArtifactResolver(offline_dir)
warnings: list[str] = []