Commit Graph

767 Commits

Author SHA1 Message Date
a5d26769e8 fix(ActionScheduler): skip trigger callback when tick has no actions 2026-02-09 20:54:35 +08:00
2db1bdf3e9 refactor(ActionScheduler): add debug log for action execution 2026-02-09 20:50:36 +08:00
656d6b65e3 refactor(ActionScheduler): add debug logs for wheel start/stop, wait window, and action loading 2026-02-09 20:41:01 +08:00
7c46f1d1ff fix(ActionScheduler): remove triggered hour actions by uuid to avoid removeAll mismatch 2026-02-09 20:03:24 +08:00
406b4250aa refactor(ActionScheduler): correct actions loading logic in hour/day updating 2026-02-09 20:03:10 +08:00
eab3d00fe8 refactor(ActionScheduler): remove useless delay in TimeWheel#wheel 2026-02-09 20:02:26 +08:00
d47e9fbf95 fix(ActionScheduler): initialize wheel tick baseline before launch to avoid check-to-wheel startup drift 2026-02-09 17:29:32 +08:00
4b77f26e7b refactor(ActionScheduler): capture current hour once and reuse it for
day/hour rollover checks
2026-02-09 16:37:46 +08:00
650f9b27a1 fix(ActionScheduler): use checkThenExecute current hour consistently and trigger wheel tasks outside lock 2026-02-09 15:56:12 +08:00
9f479c5f6f fix(ActionScheduler): unify time check/loading under checkThenExecute and guard wheel loop with launch-hour consistency 2026-02-09 14:57:13 +08:00
227c735667 fix(ActionScheduler): make TimeWheel load scheduled actions dynamically instead of using init snapshot 2026-02-09 00:13:36 +08:00
b05b665960 fix(ActionScheduler): reload day/hour action buckets on time changes via checkTimeAndLoad, and reorganize functions 2026-02-09 00:03:21 +08:00
882ec43f2b fix(ActionScheduler): make scheduling thread-safe with Mutex and cancel scheduler/time wheel scopes on shutdown 2026-02-08 23:07:03 +08:00
7cb565fd1b fix(ActionScheduler): use withTimeoutOrNull when waiting for ACTIVE state, to avoid exception leading to wheel stopped 2026-02-08 21:56:35 +08:00
84b96b6645 test(ActionScheduler): remove unused actionExecutor mock 2026-02-08 21:52:16 +08:00
2169376062 test(ActionScheduler): add unit test for ActionScheduler 2026-02-08 21:51:57 +08:00
9bff74c8c7 fix(ActionScheduler): remove second offset when loading hour actions 2026-02-08 21:51:30 +08:00
76c9c27532 refactor(MetaAction): make result a read-only property 2026-02-08 17:22:47 +08:00
8524ca6f9f refactor(ActionData): use action.result.reset() when clearing action chain state 2026-02-08 17:22:10 +08:00
7dd2104689 refactor(MetaAction): migrate to Kotlin data class, merge MetaActionType/ResultStatus into nested enums, and update runner/action usages 2026-02-08 17:15:58 +08:00
6ba5784a7f 将 .java 重命名为 .kt 2026-02-08 17:15:58 +08:00
cdea8d6322 refactor(ActionData): migrate to Kotlin sealed class and data classes, update planner/scheduler usage 2026-02-08 16:27:44 +08:00
8ca2b9998d 将 .java 重命名为 .kt 2026-02-08 16:27:44 +08:00
d098b28f31 refactor(ActionExecutorInput): migrate to Kotlin data class 2026-02-08 15:12:10 +08:00
98e4d4cf1b 将 .java 重命名为 .kt 2026-02-08 15:12:10 +08:00
70489e57f7 chore(pom): add kotlinx-coroutines-test dependency 2026-02-08 14:34:19 +08:00
a43c87006e refactor(ActionCore): replace existing action with same UUID before putAction 2026-02-08 13:29:18 +08:00
be43b7eec6 refactor(ActionScheduler): implement Kotlin time-wheel scheduling and requeue scheduled actions after execution 2026-02-08 13:24:56 +08:00
3bc2ce839a 将 .java 重命名为 .kt 2026-02-08 13:24:56 +08:00
fe5a366527 refactor(ActionExecutor): remove userId from ActionExecutorInput and use source 2026-02-08 11:29:36 +08:00
9f724cee5d chore(pom): remove test scope from coroutines dependency 2026-02-08 11:22:47 +08:00
ad58b83020 refactor(ActionExecutor): rename actions variable for clarity 2026-02-08 11:22:30 +08:00
c9b64fec2a chore(pom): add cron-utils dependency 2026-02-07 15:36:45 +08:00
0eb4765235 refactor(ActionExecutor): use HistoryAction record and track scheduled history reset 2026-02-07 15:35:34 +08:00
050c39cbc7 refactor(ActionExecutor): correct input actions' type in ActionExecutor 2026-02-06 23:38:13 +08:00
08100aea8a refactor(ActionCore): replace prepared action APIs with generic list/put 2026-02-06 21:38:54 +08:00
2cd0774834 refactor(ActionCapability): rename listAvailableActions to listAvailableMetaActions 2026-02-06 21:05:10 +08:00
12df938d85 refactor(ActionCore): simplify handleInterventions to use ActionData 2026-02-06 20:41:08 +08:00
277c0d437f chore(ActionCore): update comment 2026-02-06 20:36:50 +08:00
6b861f4b77 fix(ActionExecutor): correct logic in ActionExecutor when actionChain is empty, which will skip execution 2026-02-05 20:40:02 +08:00
d33b6617c1 fix(ActionExecutor): support removing phaserRecord correctly when exception occurred in ActionCorrector 2026-02-05 19:40:28 +08:00
a1dcf4a6fa test(ActionExecutor): test with action failure 2026-02-05 17:05:53 +08:00
9c38719514 test(ActionExecutor): test with additionalContext appending 2026-02-05 16:58:22 +08:00
33df0fa017 test(ActionExecutor): test with virtual thread pool support 2026-02-05 16:53:38 +08:00
08bda84471 refactor(ActionCore): Specifies the minimum platform thread pool size
Context:
 The ActionExecutor needs at least 2 platform thread to support async  action execution,
 otherwise the current ActionExecutor logic cannot be executed
2026-02-05 16:49:58 +08:00
76da3c29f8 fix(ActionExecutorTest): repair stub in test 2026-02-05 16:13:21 +08:00
558b589830 refactor(ActionInterventor): redefine DTOs in ActionInterventor to adapt the actual intervention logic 2026-02-05 15:48:58 +08:00
80d7c283c5 refactor(ActionExecutor): update ActionChain execution, support executing and advancing correctly 2026-02-04 00:29:42 +08:00
b0bb40c5f0 test(ActionExecutor): add unit test for ActionExecutor 2026-02-01 19:49:21 +08:00
eec8f71096 fix(action): correct return type of method runnerClient() in ActionCapability 2026-02-01 16:43:12 +08:00