qinglong/back
Copilot 03c7031a3c
Fix task duplication: add single/multi-instance support with UI configuration and stop all running instances (#2837)
* Initial plan

* Stop running tasks before starting new scheduled instance

Co-authored-by: whyour <22700758+whyour@users.noreply.github.com>

* Add multi-instance support and fix stop to kill all running instances

- Add allow_multiple_instances field to Crontab model (default: 0 for single instance)
- Add validation for new field in commonCronSchema
- Add getAllPids and killAllTasks utility functions
- Update stop method to kill ALL running instances of a task
- Update runCron to respect allow_multiple_instances config
- Backward compatible: defaults to single instance mode

Co-authored-by: whyour <22700758+whyour@users.noreply.github.com>

* Add UI support for allow_multiple_instances configuration

- Add allow_multiple_instances field to ICrontab interface
- Add instance mode selector in task creation/edit modal
- Add translations for instance mode in Chinese and English
- Default to single instance mode for backward compatibility

Co-authored-by: whyour <22700758+whyour@users.noreply.github.com>

* Add allow_multiple_instances column migration and optimize db.ts

- Add allow_multiple_instances column to Crontabs table migration
- Refactor migration code to use data-driven approach
- Replace 11 individual try-catch blocks with single loop
- Improve code maintainability and readability

Co-authored-by: whyour <22700758+whyour@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: whyour <22700758+whyour@users.noreply.github.com>
2025-11-19 00:10:27 +08:00
..
api Optimize log file writes using stream pooling (#2835) 2025-11-16 21:11:10 +08:00
config Fix task duplication: add single/multi-instance support with UI configuration and stop all running instances (#2837) 2025-11-19 00:10:27 +08:00
data Fix task duplication: add single/multi-instance support with UI configuration and stop all running instances (#2837) 2025-11-19 00:10:27 +08:00
interface 修改定时规则类型 2025-02-21 01:35:08 +08:00
loaders Fix task duplication: add single/multi-instance support with UI configuration and stop all running instances (#2837) 2025-11-19 00:10:27 +08:00
middlewares 修改服务启动逻辑 2025-05-07 09:30:00 +08:00
protos Add cron task management to QLAPI (#2826) 2025-11-14 23:20:56 +08:00
schedule Add cron task management to QLAPI (#2826) 2025-11-14 23:20:56 +08:00
services Fix task duplication: add single/multi-instance support with UI configuration and stop all running instances (#2837) 2025-11-19 00:10:27 +08:00
shared Fix task duplication: add single/multi-instance support with UI configuration and stop all running instances (#2837) 2025-11-19 00:10:27 +08:00
types 修改服务启动逻辑 2025-05-07 09:30:00 +08:00
validation Fix task duplication: add single/multi-instance support with UI configuration and stop all running instances (#2837) 2025-11-19 00:10:27 +08:00
app.ts 更新启动日志 2025-11-16 21:31:52 +08:00
token.ts 修改服务启动逻辑 2025-05-07 09:30:00 +08:00
tsconfig.json 修改服务启动逻辑 2025-05-07 09:30:00 +08:00