MCPcopy Create free account
hub / github.com/astercloud/aster / demonstrateTriggerMonitoring

Function demonstrateTriggerMonitoring

examples/scheduler/main.go:188–228  ·  view source on GitHub ↗

示例 6: 触发回调监控

()

Source from the content-addressed store, hash-verified

186
187// 示例 6: 触发回调监控
188func demonstrateTriggerMonitoring() {
189 fmt.Println("--- 示例 6: 触发回调监控 ---")
190
191 var triggerCount int
192
193 scheduler := core.NewScheduler(&core.SchedulerOptions{
194 OnTrigger: func(taskID string, spec string, kind core.TriggerKind) {
195 triggerCount++
196 fmt.Printf(" [监控] 任务触发 - ID: %s, 类型: %s, 规格: %s\n",
197 taskID[:8], kind, spec)
198 },
199 })
200 defer scheduler.Shutdown()
201
202 // 创建步骤任务
203 _, err := scheduler.EverySteps(2, func(ctx context.Context, stepCount int) error {
204 return nil
205 })
206 if err != nil {
207 log.Fatalf("创建步骤任务失败: %v", err)
208 }
209
210 // 创建定时任务
211 _, err = scheduler.EveryInterval(200*time.Millisecond, func(ctx context.Context) error {
212 return nil
213 })
214 if err != nil {
215 log.Fatalf("创建定时任务失败: %v", err)
216 }
217
218 // 模拟执行
219 for i := 1; i <= 6; i++ {
220 scheduler.NotifyStep(i)
221 time.Sleep(150 * time.Millisecond)
222 }
223
224 time.Sleep(300 * time.Millisecond)
225
226 fmt.Printf("\n总触发次数: %d\n", triggerCount)
227 fmt.Println()
228}

Callers 1

mainFunction · 0.85

Calls 6

ShutdownMethod · 0.95
EveryStepsMethod · 0.95
EveryIntervalMethod · 0.95
NotifyStepMethod · 0.95
NewSchedulerFunction · 0.92
PrintfMethod · 0.80

Tested by

no test coverage detected