# cron-task **Repository Path**: hubu8/cron-task ## Basic Information - **Project Name**: cron-task - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-30 - **Last Updated**: 2026-09-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CronTask — 定时任务桌面管理器 [![Electron](https://img.shields.io/badge/Electron-33-blue)](https://www.electronjs.org/) [![React](https://img.shields.io/badge/React-18-61DAFB)](https://react.dev/) [![TypeScript](https://img.shields.io/badge/TypeScript-5-3178C6)](https://www.typescriptlang.org/) [![SQLite](https://img.shields.io/badge/SQLite-better--sqlite3-003B57)](https://github.com/WiseLibs/better-sqlite3) 基于 Electron + React + TypeScript 的跨平台桌面定时任务管理器,支持**七字段 Cron 表达式**精确调度,**JavaScript 沙箱**作为执行主体,内建完整的日志追溯系统。 --- ## 功能特性 - **七字段 Cron 调度** — 秒级精度,支持 `,` `-` `/` `?` `L` `#` 全部操作符 - **JS 脚本执行** — Node.js `vm` 沙箱 + 模块白名单,安全隔离 - **可视化 Cron 辅助器** — 常用模板 + 实时校验 + 执行时间预览 - **执行历史与日志** — 全链路追踪,分级过滤,持久化存储 - **代码模板库** — 预置 10+ 常用模板,支持自定义模板增删改查 - **系统托盘** — 关闭窗口后台运行,定时调度不受影响 - **暗黑主题** — 默认深色主题,保护视力 - **跨平台** — Windows / macOS / Linux --- ## 快速开始 ```bash # 1. 进入项目目录 cd app/cron-task # 2. 安装依赖 npm install # 3. 启动开发模式 npm run dev # 4. 生产构建 npm run build # 5. 打包分发 npm run dist ``` > 首次启动时,系统会自动创建 SQLite 数据库并预置默认代码模板。 --- ## 使用方法 ### 创建定时任务 1. 左侧菜单点击 **任务管理** 2. 点击右上角 **+ 新建任务** 3. 填写 **任务名称** 4. 设置 **Cron 表达式**(可点击「辅助生成」使用可视化工具) 5. 编写 **JS 脚本**(支持 async/await) 6. 点击 **保存** ### 立即执行 - 在任务列表页点击任务的 ▶ 按钮 - 或在编辑页点击 **立即执行** ### 查看日志 - 左侧菜单进入 **执行日志** - 可按任务和状态筛选 - 点击「查看日志」查看完整运行时日志 ### 使用代码模板 - 编辑任务时,脚本编辑器右上角点击 **模板库** - 选择模板一键追加到当前脚本尾部 - 也可在 **模板管理** 中自定义模板 --- ## 脚本开发 详细的脚本 API 文档请参阅 [脚本引擎参考](docs/script-engine.md)。 ### 快速示例 ```javascript // 每个 JS 脚本都是一个 async 函数 const https = require('https'); $logger.info('任务开始执行'); // 你的业务逻辑... const result = { success: true, time: new Date().toISOString() }; $logger.info('执行完成'); return result; ``` --- ## 技术栈 | 层级 | 技术 | |------|------| | 桌面框架 | Electron 33 | | 前端框架 | React 18 | | UI 组件 | Ant Design 5 | | 代码编辑器 | Monaco Editor | | 调度引擎 | cron-parser + node-cron | | 脚本执行 | Node.js vm 沙箱 | | 数据存储 | SQLite (better-sqlite3) | | 状态管理 | Zustand | | 构建工具 | electron-vite / electron-builder | --- ## 目录结构 ``` cron-task/ ├── package.json # 项目配置 ├── electron.vite.config.ts # 构建配置 ├── electron-builder.yml # 打包配置 ├── src/ │ ├── main/ # Electron 主进程 │ │ ├── index.ts # 主入口 + 窗口管理 + 系统托盘 │ │ ├── database.ts # SQLite 数据库层 │ │ ├── scheduler.ts # Cron 调度引擎 │ │ ├── executor-manager.ts # JS 沙箱执行器 │ │ └── ipc-handlers.ts # IPC 处理器 │ │ │ ├── preload/ │ │ └── index.ts # 安全桥接层 │ │ │ └── renderer/ # React 前端 │ ├── index.html │ └── src/ │ ├── pages/ # 页面:任务列表、编辑器、日志、模板、设置 │ ├── components/ # 组件:Cron辅助器、脚本编辑器、日志面板 │ ├── stores/ # 状态管理 │ └── types/ # 类型定义 │ └── out/ # 构建产物 ``` --- ## 许可证 MIT License