• 关于

    定时

    的搜索结果

问题

定时任务:创建定时任务

根据传入参数创建定时任务。每个用户最多能创建 20 个定时任务。 由于伸缩组正在发生伸缩活动或者伸缩组停用等原因,导致定时任务触发执行伸缩规则失败后,在重试过期时间(LaunchExpiration...
青蛙跳 2019-12-01 21:31:43 559 浏览量 回答数 0

问题

弹性伸缩创建定时任务

根据传入参数创建定时任务。每个用户最多能创建 20 个定时任务。 由于伸缩组正在发生伸缩活动或者伸缩组停用等原因,导致定时任务触发执行伸缩规则失败后,在重试过期时间(LaunchExpiration...
反向一觉 2019-12-01 21:16:05 1691 浏览量 回答数 0

回答

先创建定时器,拿到定时器句柄,再清楚该定时器单次定时// 创建定时器, 仅一秒后执行一次 var timer = setTimeout(function(){ console.log('something') }, 1000) // 清除定时器 clearTimeout(timer)循环定时// 创建定时器, 每秒执行一次 var timer = setInterval(function(){ console.log('something') }, 1000) // 清除定时器 clearInterval(timer)
albin.liao 2019-12-02 00:55:18 0 浏览量 回答数 0

问题

在大数据开发套件中,编写了一个定时任务,提交并正常定时调度,是否我删除了该任务,定时调度就会停止了?否则如何停止一个定时调度任务?

在大数据开发套件中,编写了一个定时任务,提交并正常定时调度,是否我删除了该任务,定时调度就会停止了?否则如何停止一个定时调度任务?...
祁同伟 2019-12-01 20:16:21 1118 浏览量 回答数 1

回答

tick一般是作为任务延迟调度的内部机制,其接口主要是系统内部使用。对于使用os的应用软件,也需要定时触发相关功能的接口,包括单次定时器和周期定时器。 从用户层面来讲,不关注底层cpu的定时机制以及tick的调度,用户希望的定时器接口是,可以创建和使能一个软件接口定时器,时间到了之后,用户的钩子函数能被执行。而对于操作系统的定时器本身来讲,其也需要屏蔽底层定时模块的差异。因此,在软件层次上,对于定时器硬件相关的操作由tick模块完成,定时器(timer)模块基于tick作为最基本的时间调度单元,即最小时间周期,来推动自己时间轴的运行。
剑曼红尘 2020-03-26 21:33:47 0 浏览量 回答数 0

问题

tomcat 下启动后quartz定时任务问题 jfinal?报错

@jfinal  @quartz  启动tomcat ,然后进入QuartzPlugin方法,根据定时定时状态启动相应定时任务。然后utomcat 没有报错,但是定时任务1次也米有执...
爱吃鱼的程序员 2020-06-06 16:45:38 0 浏览量 回答数 1

回答

Serverless 工作流本身没有提供定时触发工作流执行的功能,借助于函数计算 (FunctionCompute,简称 FC)的定时触器可以很方便的实现工作流定时调用。本文介绍如何使用 Serverless 工作流提供的定时触发工作流应用,来达到定时执行工作流的目的。 应用框架 定时触发工作流的执行流程如下: FC 定时触发器会定时执行 FC 函数。 FC 函数通过 Serverless 工作流 SDK 调用 StartExecution API 执行 Serverless 工作流。8b0732b23943d746 应用部署 创建定时触发工作流应用 在 Serverless 工作流应用中心 创建定时触发工作流应用。 81ade77a13121123 说明 应用名称:自定义的资源编排服务 ROS 资源栈名称,同一个账号下需保证唯一。 Cron 定时触发工作流的 Cron 表达式,参见 FC 定时触发器,默认为每分钟触发一次。 Input 触发执行工作流的输入,必须为 JSON 格式,默认为空。 部署成功后可看到应用创建的所有资源。de339104fa7aaff8其中包括: RAM 角色:fnf-timer-demo-serviceRole、fnf-timer-demo-flowRole。 FC 资源: 服务 fnf-timer-demo-service、函数 timer、函数 hello、定时触发器 trigger。 Serverless 工作流 资源:工作流 fnf-timer-demo-flow。 验证生效 前往 Serverless 工作流控制台可看到应用创建的工作流 fnf-timer-demo-flow 被定时触发 。17b3faa193bafe86示例工作流使用 任务步骤 调用 FC 函数 hello,定义如下。 version: v1 type: flow steps: - type: task name: hello resourceArn: 'acs:fc:::services/fnf-time-demo-service/functions/hello' 您可以修改该工作流的定义实现自身的业务逻辑。
1934890530796658 2020-03-27 10:52:42 0 浏览量 回答数 0

回答

如果当前定时任务不再满足需求,您可以修改一项或者多项定时任务属性,无需重新创建。 操作步骤 登录弹性伸缩控制台。 在左侧导航栏中,单击自动触发任务管理 > 定时任务。 在顶部状态栏处,选择地域。 找到待操作的定时任务,在操作列中,单击修改。 配置定时任务。 不支持关闭重复周期设置,其它定时任务配置项的说明,请参见创建定时任务。 单击提交。
1934890530796658 2020-03-21 23:43:34 0 浏览量 回答数 0

问题

定时消息和延时消息是什么情况?

本文档主要介绍 MQ 定时消息和延时消息的概念、适用场景以及使用过程中的注意事项。 概念介绍 定时消息:Producer 将消息发送到 MQ 服务端,但并不期望这条消息立马投递,而是推迟到在...
猫饭先生 2019-12-01 21:07:47 1082 浏览量 回答数 0

问题

定时任务:创建定时任务

描述 根据传入参数创建定时任务。 每个用户最多能创建20个定时任务。由于伸缩组正在发生伸缩活动或者伸缩组停用等原因,导致定时任务触发执行伸缩规则失败后,在LaunchExpirationTime内࿰...
青蛙跳 2019-12-01 21:32:06 842 浏览量 回答数 0

问题

关于android PullToRefreshListView异步定时器删除item

我在一个PullToRefreshListView的每一个item中设有定时器,每个定时器的时间是不同 的,当定时器到0的时候删除这个item,实现一个一个item在定时器中删除。 我遇到的问题是这样异步删除,一个没有问题,item个数多了...
爵霸 2019-12-01 20:27:55 923 浏览量 回答数 1

回答

结构 timer 就是 Golang 定时器的内部表示,每一个 timer 其实都存储在堆中,tb 就是用于存储当前定时器的桶,而 i 是当前定时器在堆中的索引,我们可以通过这两个变量找到当前定时器在堆中的位置: type timer struct { tb *timersBucket i int when int64 period int64 f func(interface{}, uintptr) arg interface{} seq uintptr } when 表示当前定时器(Timer)被唤醒的时间,而 period 表示两次被唤醒的间隔,每当定时器被唤醒时都会调用 f(args, now) 函数并传入 args 和当前时间作为参数。然而这里的 timer 作为一个私有结构体其实只是定时器的运行时表示,time 包对外暴露的定时器使用了如下所示的结构体: type Timer struct { C <-chan Time r runtimeTimer } Timer 定时器必须通过 NewTimer 或者 AfterFunc 函数进行创建,其中的 runtimeTimer 其实就是上面介绍的 timer 结构体,当定时器失效时,失效的时间就会被发送给当前定时器持有的 Channel C,订阅管道中消息的 Goroutine 就会收到当前定时器失效的时间。 在 time 包中,除了 timer 和 Timer 两个分别用于表示运行时定时器和对外暴露的 API 之外,timersBucket 这个用于存储定时器的结构体也非常重要,它会存储一个处理器上的全部定时器,不过如果当前机器的核数超过了 64 核,也就是机器上的处理器 P 的个数超过了 64 个,多个处理器上的定时器就可能存储在同一个桶中: type timersBucket struct { lock mutex gp *g created bool sleeping bool rescheduling bool sleepUntil int64 waitnote note t []*timer } 每一个 timersBucket 中的 t 就是用于存储定时器指针的切片,每一个运行的 Go 语言程序都会在内存中存储着 64 个桶,这些桶中都存储定时器的信息:  每一个桶持有的 timer 切片其实都是一个最小堆,这个最小堆会按照 timer 应该触发的时间对它们进行排序,最小堆最上面的定时器就是最近需要被唤醒的 timer,我们会在下面展开介绍定时器的创建和触发过程。 工作原理 既然我们已经介绍了定时器的数据结构,接下来我们就可以开始分析它的常见操作以及工作原理了,在这一节中我们将介绍定时器的创建、触发、time.Sleep 与定时器的关系以及计时器 Ticker 的实现原理。 创建 time 包对外提供了两种创建定时器的方法,第一种方法就是 NewTimer 接口,这个接口会创建一个用于通知触发时间的 Channel、调用 startTimer 方法并返回一个创建指向 Timer 结构体的指针: func NewTimer(d Duration) *Timer { c := make(chan Time, 1) t := &Timer{ C: c, r: runtimeTimer{ when: when(d), f: sendTime, arg: c, }, } startTimer(&t.r) return t } 另一个用于创建 Timer 的方法 AfterFunc 其实也提供了非常相似的结构,与 NewTimer 方法不同的是该方法没有创建一个用于通知触发时间的 Channel,它只会在定时器到期时调用传入的方法: func AfterFunc(d Duration, f func()) *Timer { t := &Timer{ r: runtimeTimer{ when: when(d), f: goFunc, arg: f, }, } startTimer(&t.r) return t } startTimer 基本上就是创建定时器的入口了,所有定时器的创建和重启基本上都需要调用该函数: func startTimer(t *timer) { addtimer(t) } func addtimer(t *timer) { tb := t.assignBucket() tb.addtimerLocked(t) } 它会调用 addTimer 函数,这个函数总共做了两件事情,首先通过 assignBucket 方法为当前定时器选择一个 timersBucket 桶,我们会根据当前 Goroutine 所在处理器 P 的 id 选择一个合适的桶,随后调用 addTimerLocked 方法将当前定时器加入桶中: func (tb *timersBucket) addtimerLocked(t *timer) bool { t.i = len(tb.t) tb.t = append(tb.t, t) if !siftupTimer(tb.t, t.i) { return false } if t.i == 0 { if tb.sleeping && tb.sleepUntil > t.when { tb.sleeping = false notewakeup(&tb.waitnote) } if tb.rescheduling { tb.rescheduling = false goready(tb.gp, 0) } if !tb.created { tb.created = true go timerproc(tb) } } return true } addtimerLocked 会先将最新加入的定时器加到队列的末尾,随后调用 siftupTimer 将当前定时器与四叉树(或者四叉堆)中的父节点进行比较,保证父节点的到期时间一定大于子节点:  这个四叉树只能保证父节点的到期时间大于子节点,这对于我们来说其实也足够了,因为我们只关心即将被触发的计数器,如果当前定时器是第一个被加入四叉树的定时器,我们还会通过 go timerproc(tb) 启动一个 Goroutine 用于处理当前树中的定时器,这也是处理定时器的核心方法。 触发 定时器的触发都是由 timerproc 中的一个双层 for 循环控制的,外层的 for 循环主要负责对当前 Goroutine 进行控制,它不仅会负责锁的获取和释放,还会在合适的时机触发当前 Goroutine 的休眠: func timerproc(tb *timersBucket) { tb.gp = getg() for { tb.sleeping = false now := nanotime() delta := int64(-1) // inner loop if delta < 0 { tb.rescheduling = true goparkunlock(&tb.lock, waitReasonTimerGoroutineIdle, traceEvGoBlock, 1) continue } tb.sleeping = true tb.sleepUntil = now + delta noteclear(&tb.waitnote) notetsleepg(&tb.waitnote, delta) } } 如果距离下一个定时器被唤醒的时间小于 0,当前的 timerproc 就会将 rescheduling 标记设置成 true 并立刻陷入休眠,这其实也意味着当前 timerproc 中不包含任何待处理的定时器,当我们再向该 timerBucket 加入定时器时就会重新唤醒 timerproc Goroutine。 在其他情况下,也就是下一次计数器的响应时间是 now + delta 时,timerproc 中的外层循环会通过 notesleepg 将当前 Goroutine 陷入休眠。 func notetsleepg(n *note, ns int64) bool { gp := getg() if gp == gp.m.g0 { throw("notetsleepg on g0") } semacreate(gp.m) entersyscallblock() ok := notetsleep_internal(n, ns, nil, 0) exitsyscall() return ok } 该函数会先获取当前的 Goroutine 并在当前的『CPU 上』创建一个信号量,随后在 entersyscallblock 和 exitsyscall 之间执行系统调用让当前的 Goroutine 陷入休眠并在 ns 纳秒后返回。 内部循环的主要作用就是触发已经到期的定时器,在这个内部循环中,我们会按照以下的流程对当前桶中的定时器进行处理: 如果桶中不包含任何定时器就会直接返回并陷入休眠等待定时器加入当前桶; 如果四叉树最上面的定时器还没有到期会通过 notetsleepg 方法陷入休眠等待最近定时器的到期; 如果四叉树最上面的定时器已经到期; 当定时器的 period > 0 就会设置下一次会触发定时器的时间并将当前定时器向下移动到对应的位置; 当定时器的 period <= 0 就会将当前定时器从四叉树中移除; 在每次循环的最后都会从定时器中取出定时器中的函数、参数和序列号并调用函数触发该计数器; ```js for { if len(tb.t) == 0 { delta = -1 break } t := tb.t[0] delta = t.when - now if delta > 0 { break } ok := true if t.period > 0 { t.when += t.period * (1 + -delta/t.period) if !siftdownTimer(tb.t, 0) { ok = false } } else { last := len(tb.t) - 1 if last > 0 { tb.t[0] = tb.t[last] tb.t[0].i = 0 } tb.t[last] = nil tb.t = tb.t[:last] if last > 0 { if !siftdownTimer(tb.t, 0) { ok = false } } t.i = -1 // mark as removed } f := t.f arg := t.arg seq := t.seq f(arg, seq) } 使用 NewTimer 创建的定时器,传入的函数时 sendTime,它会将当前时间发送到定时器持有的 Channel 中,而使用 AfterFunc 创建的定时器,在内层循环中调用的函数就会是调用方传入的函数了。 **休眠** 如果你使用过一段时间的 Go 语言,你一定在项目中使用过 time 包中的 Sleep 方法让当前的 Goroutine 陷入休眠以等待某些条件的完成或者触发一些定时任务,time.Sleep 就是通过如下所示的 timeSleep 方法完成的: ```js func timeSleep(ns int64) { if ns <= 0 { return } gp := getg() t := gp.timer if t == nil { t = new(timer) gp.timer = t } *t = timer{} t.when = nanotime() + ns t.f = goroutineReady t.arg = gp tb := t.assignBucket() lock(&tb.lock) if !tb.addtimerLocked(t) { unlock(&tb.lock) badTimer() } goparkunlock(&tb.lock, waitReasonSleep, traceEvGoSleep, 2) } timeSleep 会创建一个新的 timer 结构体,在初始化的过程中我们会传入当前 Goroutine 应该被唤醒的时间以及唤醒时需要调用的函数 goroutineReady,随后会调用 goparkunlock 将当前 Goroutine 陷入休眠状态,当定时器到期时也会调用 goroutineReady 方法唤醒当前的 Goroutine: func goroutineReady(arg interface{}, seq uintptr) { goready(arg.(*g), 0) } time.Sleep 方法其实只是创建了一个会在到期时唤醒当前 Goroutine 的定时器并通过 goparkunlock 将当前的协程陷入休眠状态等待定时器触发的唤醒。 Ticker 除了只用于一次的定时器(Timer)之外,Go 语言的 time 包中还提供了用于多次通知的 Ticker 计时器,计时器中包含了一个用于接受通知的 Channel 和一个定时器,这两个字段共同组成了用于连续多次触发事件的计时器: type Ticker struct { C <-chan Time // The channel on which the ticks are delivered. r runtimeTimer } 想要在 Go 语言中创建一个计时器只有两种方法,一种是使用 NewTicker 方法显示地创建Ticker 计时器指针,另一种可以直接通过 Tick 方法获取一个会定期发送消息的 Channel: func NewTicker(d Duration) *Ticker { if d <= 0 { panic(errors.New("non-positive interval for NewTicker")) } c := make(chan Time, 1) t := &Ticker{ C: c, r: runtimeTimer{ when: when(d), period: int64(d), f: sendTime, arg: c, }, } startTimer(&t.r) return t } func Tick(d Duration) <-chan Time { if d <= 0 { return nil } return NewTicker(d).C } Tick 其实也只是对 NewTicker 的简单封装,从实现上我们就能看出来它其实就是调用了 NewTicker 获取了计时器并返回了计时器中 Channel,两个创建计时器的方法的实现都并不复杂而且费容易理解,所以在这里也就不详细展开介绍了。 需要注意的是每一个 NewTicker 方法开启的计时器都需要在不需要使用时调用 Stop 进行关闭,如果不显示调用 Stop 方法,创建的计时器就没有办法被垃圾回收,而通过 Tick 创建的计时器由于只对外提供了 Channel,所以是一定没有办法关闭的,我们一定要谨慎使用这一接口创建计时器。 性能分析 定时器在内部使用四叉树的方式进行实现和存储,当我们在生产环境中使用定时器进行毫秒级别的计时时,在高并发的场景下会有比较明显的性能问题,我们可以通过实验测试一下定时器在高并发时的性能,假设我们有以下的代码: func runTimers(count int) { durationCh := make(chan time.Duration, count) wg := sync.WaitGroup{} wg.Add(count) for i := 0; i < count; i++ { go func() { startedAt := time.Now() time.AfterFunc(10*time.Millisecond, func() { defer wg.Done() durationCh <- time.Since(startedAt) }) }() } wg.Wait() close(durationCh) durations := []time.Duration{} totalDuration := 0 * time.Millisecond for duration := range durationCh { durations = append(durations, duration) totalDuration += duration } averageDuration := totalDuration / time.Duration(count) sort.Slice(durations, func(i, j int) bool { return durations[i] < durations[j] }) fmt.Printf("run %v timers with average=%v, pct50=%v, pct99=%v\n", count, averageDuration, durations[count/2], durations[int(float64(count)*0.99)]) } 完整的性能测试代码可以在 benchmark_timers.go 中找到,需要注意的是:由于机器和性能的不同,多次运行测试可能会有不一样的结果。 这段代码开了 N 个 Goroutine 并在每一个 Goroutine 中运行一个定时器,我们会在定时器到期时将开始计时到定时器到期所用的时间加入 Channel 并用于之后的统计,在函数的最后我们会计算出 N 个 Goroutine 中定时器到期时间的平均数、50 分位数和 99 分位数: $ go test ./... -v === RUN TestTimers run 1000 timers with average=10.367111ms, pct50=10.234219ms, pct99=10.913219ms run 2000 timers with average=10.431598ms, pct50=10.37367ms, pct99=11.025823ms run 5000 timers with average=11.873773ms, pct50=11.986249ms, pct99=12.673725ms run 10000 timers with average=11.954716ms, pct50=12.313613ms, pct99=13.507858ms run 20000 timers with average=11.456237ms, pct50=10.625529ms, pct99=25.246254ms run 50000 timers with average=21.223818ms, pct50=14.792982ms, pct99=34.250143ms run 100000 timers with average=36.010924ms, pct50=31.794761ms, pct99=128.089527ms run 500000 timers with average=176.676498ms, pct50=138.238588ms, pct99=676.967558ms --- PASS: TestTimers (1.21s) 我们将上述代码输出的结果绘制成如下图所示的折线图,其中横轴是并行定时器的个数,纵轴表示定时器从开始到触发时间的差值,三个不同的线分别表示时间的平均值、50 分位数和 99 分位数:  虽然测试的数据可能有一些误差,但是从图中我们也能得出一些跟定时器性能和现象有关的结论: 定时器触发的时间一定会晚于创建时传入的时间,假设定时器需要等待 10ms 触发,那它触发的时间一定是晚于 10ms 的; 当并发的定时器数量达到 5000 时,定时器的平均误差达到了 ~18%,99 分位数上的误差达到了 ~26%; 并发定时器的数量超过 5000 之后,定时器的误差就变得非常明显,不能有效、准确地完成计时任务; 这其实也是因为定时器从开始到触发的时间间隔非常短,当我们将计时的时间改到 100ms 时就会发现性能问题有比较明显的改善:  哪怕并行运行了 10w 个定时器,99 分位数的误差也只有 ~12%,我们其实能够发现 Go 语言标准库中的定时器在计时时间较短并且并发较高时有着非常明显的问题,所以在一些性能非常敏感的基础服务中使用定时器一定要非常注意 —— 它可能达不到我们预期的效果。 不过哪怕我们不主动使用定时器,而是使用 context.WithDeadline 这种方法,由于它底层也会使用定时器实现,所以仍然会受到影响。 总结 Go 语言的定时器在并发编程起到了非常重要的作用,它能够为我们提供比较准确的相对时间,基于它的功能,标准库中还提供了计时器、休眠等接口能够帮助我们在 Go 语言程序中更好地处理过期和超时等问题。 标准库中的定时器在大多数情况下是能够正常工作并且高效完成任务的,但是在遇到极端情况或者性能敏感场景时,它可能没有办法胜任,而在 10ms 的这个粒度下,作者在社区中也没有找到能够使用的定时器实现,一些使用时间轮算法的开源库也不能很好地完成这个任务。
有只黑白猫 2020-01-10 10:01:15 0 浏览量 回答数 0

问题

定时任务:修改、查询、删除定时任务

描述 修改定时任务的属性、查询定时任务的信息、删除一个指定的伸缩规则...
青蛙跳 2019-12-01 21:31:44 408 浏览量 回答数 0

回答

调用CreateScheduledTask创建一个定时任务。 接口说明 一个账号下最多创建20个定时任务。 由于伸缩组正在发生伸缩活动或者伸缩组停用等原因,导致定时任务触发执行伸缩规则失败后,在LaunchExpirationTime内,定时任务会自动重试触发,否则放弃本次定时触发。 如果多个定时任务在相近的时间内触发执行同一个伸缩组的伸缩规则,则最早触发的定时任务会先执行伸缩活动。由于同一个伸缩组同一时刻内只能有一个伸缩活动,排在后面的定时任务会在LaunchExpirationTime内自动重试定时触发。如上一个伸缩活动完成之后,排在后面的定时任务还在LaunchExpirationTime内重试,则执行该定时任务的伸缩规则并触发相应的伸缩活动。 定时任务支持两种伸缩方式。 通过ScheduledAction参数设置需要执行的伸缩规则。 通过ScalingGroupId参数设置伸缩组内实例数量。 说明 不支持同时设置ScheduledAction和ScalingGroupId。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试 请求参数 名称 类型 是否必选 示例值 描述 Action String 否 CreateScheduledTask 系统规定参数,取值:CreateScheduledTask。 RegionId String 是 cn-qingdao 定时任务所属地域的ID。 ScheduledTaskName String 否 scheduled**** 定时任务的显示名称。2~64个英文或中文字符,以数字、大小字母或中文开头,可包含数字、下划线(_)、连字符(-)或点号(.)。同一账号同一地域内唯一。 默认值:ScheduledScalingTaskId。 Description String 否 fortest 定时任务的描述信息。2~200个英文或中文字符。 ScheduledAction String 否 ari:acs:ess:cn-qingdao:1344371:scalingRule/cCBpdYdQuBe2cUxOdu6**** 定时任务触发时需要执行的伸缩规则,填写伸缩规则的唯一标识符。指定ScheduledAction后,定时任务的伸缩方式为选择已有伸缩规则。 说明 不支持同时设置ScheduledAction和ScalingGroupId。 RecurrenceEndTime String 否 2014-08-17T16:55Z 重复执行定时任务的结束时间。 按照ISO8601标准表示,并需要使用UTC时间。 格式为:YYYY-MM-DDThh:mmZ。不能填写自创建当天起365日后的时间。 您需要同时指定RecurrenceType、RecurrenceValue和RecurrenceEndTime。 LaunchTime String 否 2014-08-17T16:52Z 定时任务触发的时间点。 按照ISO8601标准表示,并需要使用UTC时间。格式为:YYYY-MM-DDThh:mmZ。不能填写自创建当天起90日后的时间。 如果指定了RecurrenceType,则此属性指定的时间点,默认为循环执行的时间点。 如果未指定RecurrenceType,则按指定的日期和时间执行一次。 RecurrenceType String 否 Daily 重复执行定时任务的类型,取值范围: Daily:每多少天重复执行一次定时任务。 Weekly:每周指定几天重复执行一次定时任务。 Monthly:每月内指定几天重复执行一次定时任务。 Cron:按照指定的Cron表达式执行定时任务。 您需要同时指定RecurrenceType、RecurrenceValue和RecurrenceEndTime。 RecurrenceValue String 否 1 重复执行定时任务的数值。 RecurrenceType取Daily时,只能填一个值,取值范围:1~31。 RecurrenceType取Weekly时,可以填入多个值,填多个值时使用英文逗号(,)分隔。比如,周日、周一、周二、周三、周四、周五、周六的值依次为:0,1,2,3,4,5,6。 RecurrenceType取Monthly时,格式为A-B。A、B的取值范围为1~31,并且B必须大于等于A。 RecurrenceType取Cron时,表示UTC时间,支持分、时、日、月、星期的5域表达式,支持通配符英文逗号(,)、英文问号(?)、连词符(-)、星号(*)、井号(#)、斜线(/)、L和W。 您需要同时指定RecurrenceType、RecurrenceValue和RecurrenceEndTime。 TaskEnabled Boolean 否 true 是否启动定时任务。 true:启动任务。 false:停止任务 。 默认值:true。 LaunchExpirationTime Integer 否 600 定时任务触发操作失败后,在此时间内重试。单位为秒,取值范围:0~21600。 默认值:600。 MinValue Integer 否 0 定时任务的伸缩方式为设置伸缩组内实例数量时,指定伸缩组内实例的最小数量。 MaxValue Integer 否 10 定时任务的伸缩方式为设置伸缩组内实例数量时,指定伸缩组内实例的最大数量。 DesiredCapacity Integer 否 10 定时任务的伸缩方式为设置伸缩组内实例数量时,指定伸缩组内实例的期望实例数。 说明 伸缩组必须支持设置期望实例数,即在创建该伸缩组时指定了DesiredCapacity。 ScalingGroupId String 否 asg-**** 定时任务触发时需要修改实例数量的伸缩组,填写伸缩组ID。指定ScalingGroupId后,定时任务的伸缩方式为设置伸缩组内实例数量,您需要为MinValue、MaxValue和DesiredCapacity中至少一个参数指定数量。 说明 不支持同时设置ScheduledAction和ScalingGroupId。 返回数据 名称 类型 示例值 描述 ScheduledTaskId String edRtShc57WGXdt8TlPbr**** 定时任务的ID,由系统生成,全局唯一。 RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** 请求ID。 示例 请求示例 http://ess.aliyuncs.com/?Action=CreateScheduledTask &RegionId=cn-qingdao &LaunchTime=2014-08-17T16:52Z &RecurrenceType=Daily &RecurrenceValue=1 &RecurrenceEndTime=2014-08-17T16:55Z &ScheduledAction=ari:acs:ess:cn-qingdao:1344371:scalingRule/cCBpdYdQuBe2cUxOdu6**** &<公共请求参数> 正常返回示例 XML 格式 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** edRtShc57WGXdt8TlPbr**** JSON 格式 { "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****", "ScheduledTaskId": "edRtShc57WGXdt8TlPbr****" } 错误码 访问错误中心查看更多错误码。 HttpCode 错误码 错误信息 描述 404 InvalidRegionId.NotFound The specified region does not exist. 指定的地域不存在。 400 InvalidScheduledTaskName.Duplicate The specified value of parameter ScheduledTaskName is duplicated. 定时任务名已存在。 400 QuotaExceeded.ScheduledTask Scheduled task quota exceeded. 用户的定时任务使用个数达到上限。 400 ScheduledAction.RegionMismatch The specified scheduled task and the specified scheduled action are not in the same Region. 指定的ScheduledAction与定时任务所在的地域不匹配。 调用ModifyScheduledTask修改一个定时任务的信息。 接口说明 定时任务支持两种伸缩方式。 通过ScheduledAction参数设置需要执行的伸缩规则。 通过ScalingGroupId参数设置伸缩组内实例数量。 说明 不支持同时设置ScheduledAction和ScalingGroupId。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试 请求参数 名称 类型 是否必选 示例值 描述 Action String 否 ModifyScheduledTask 系统规定参数,取值:ModifyScheduledTask。 ScheduledTaskId String 是 edRtShc57WGXdt8TlPbr**** 定时任务的ID。 ScheduledTaskName String 否 scheduled**** 定时任务的名称。2~64个英文或中文字符,以数字、大小字母或中文开头,可包含数字、下划线(_)、连字符(-)或点号(.)。同一账号同一地域内唯一。 Description String 否 fortest 定时任务的描述信息。2~200个英文或中文字符。 ScheduledAction String 否 ari:acs:ess:cn-qingdao:1344371:scalingRule/cCBpdYdQuBe2cUxOdu6**** 定时任务触发时需要执行的伸缩规则,填写伸缩规则的唯一标识符。指定ScheduledAction后,定时任务的伸缩方式为选择已有伸缩规则。 说明 不支持同时设置ScheduledAction和ScalingGroupId。 RecurrenceEndTime String 否 2014-08-20T16:55Z 重复执行定时任务的结束时间。按照ISO8601标准表示,并需要使用UTC时间。格式为:YYYY-MM-DDThh:mmZ。不能填写自修改当天起365日后的时间。 修改后,RecurrenceType、RecurrenceValue和RecurrenceEndTime需要同时有效。 LaunchTime String 否 2014-08-18T10:52Z 定时任务触发的时间点。按照ISO8601标准表示,并需要使用UTC时间。格式为:YYYY-MM-DDThh:mmZ。不能填写自修改当天起90日后的时间。 如果指定了RecurrenceType,则此属性指定的时间点,默认为循环执行的时间点。 如果未指定RecurrenceType,则按指定的日期和时间执行一次。 RecurrenceType String 否 Daily 重复执行定时任务的类型,取值范围: Daily:每多少天重复执行一次定时任务。 Weekly:每周指定几天重复执行一次定时任务。 Monthly:每月内指定几天重复执行一次定时任务。 Cron:按照指定的Cron表达式执行定时任务。 修改后,RecurrenceType、RecurrenceValue和RecurrenceEndTime需要同时有效。 RecurrenceValue String 否 2 重复执行定时任务的数值。 RecurrenceType取Daily时,只能填一个值,取值范围:1~31。 RecurrenceType取Weekly时,可以填入多个值,填多个值时使用英文逗号(,)分隔。比如,周日、周一、周二、周三、周四、周五、周六的值依次为:0,1,2,3,4,5,6。 RecurrenceType取Monthly时,格式为A-B。A、B的取值范围为1~31,并且B必须大于等于A。 RecurrenceType取Cron时,表示UTC时间,支持分、时、日、月、星期的5域表达式,支持通配符英文逗号(,)、英文问号(?)、连字符(-)、星号(*)、井号(#)、斜线(/)、L和W。 修改后,RecurrenceType、RecurrenceValue和RecurrenceEndTime需要同时有效。 TaskEnabled Boolean 否 true 是否启动定时任务。 true:启动定时任务。 false:停止定时任务。 LaunchExpirationTime Integer 否 600 定时任务触发操作失败后,在此时间内重试。单位为秒,取值范围:0~21600。 MinValue Integer 否 0 定时任务的伸缩方式为设置伸缩组内实例数量时,指定伸缩组内实例的最小数量。 MaxValue Integer 否 10 定时任务的伸缩方式为设置伸缩组内实例数量时,指定伸缩组内实例的最大数量。 DesiredCapacity Integer 否 10 定时任务的伸缩方式为设置伸缩组内实例数量时,指定伸缩组内实例的期望实例数。 说明 伸缩组必须支持设置期望实例数,即在创建该伸缩组时指定了DesiredCapacity。 ScalingGroupId String 否 asg-**** 定时任务触发时需要修改实例数量的伸缩组,填写伸缩组ID。指定ScalingGroupId后,定时任务的伸缩方式为设置伸缩组内实例数量,您需要为MinValue、MaxValue和DesiredCapacity中至少一个参数指定数量。 说明 不支持同时设置ScheduledAction和ScalingGroupId。 返回数据 名称 类型 示例值 描述 RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** 请求ID。 示例 请求示例 http://ess.aliyuncs.com/?Action=ModifyScheduledTask &ScheduledTaskId=edRtShc57WGXdt8TlPbr**** &LaunchTime=2014-08-18T10:52Z &RecurrenceEndTime=2014-08-20T16:55Z &<公共请求参数> 正常返回示例 XML 格式 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** JSON 格式 { "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****" } 错误码 访问错误中心查看更多错误码。 HttpCode 错误码 错误信息 描述 404 InvalidScheduledTaskId.NotFound The specified scheduled task does not exist. 指定的定时任务在该用户账号下不存在。 400 InvalidScheduledTaskName.Duplicate The specified value of parameter ScheduledTaskName is duplicated. 定时任务名已存在。 400 ScheduledAction.RegionMismatch The specified scheduled task and the specified scheduled action are not in the same Region. 指定的ScheduledAction与定时任务所在的地域不匹配。 调用ModifyScheduledTask修改一个定时任务的信息。 接口说明 定时任务支持两种伸缩方式。 通过ScheduledAction参数设置需要执行的伸缩规则。 通过ScalingGroupId参数设置伸缩组内实例数量。 说明 不支持同时设置ScheduledAction和ScalingGroupId。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试 请求参数 名称 类型 是否必选 示例值 描述 Action String 否 ModifyScheduledTask 系统规定参数,取值:ModifyScheduledTask。 ScheduledTaskId String 是 edRtShc57WGXdt8TlPbr**** 定时任务的ID。 ScheduledTaskName String 否 scheduled**** 定时任务的名称。2~64个英文或中文字符,以数字、大小字母或中文开头,可包含数字、下划线(_)、连字符(-)或点号(.)。同一账号同一地域内唯一。 Description String 否 fortest 定时任务的描述信息。2~200个英文或中文字符。 ScheduledAction String 否 ari:acs:ess:cn-qingdao:1344371:scalingRule/cCBpdYdQuBe2cUxOdu6**** 定时任务触发时需要执行的伸缩规则,填写伸缩规则的唯一标识符。指定ScheduledAction后,定时任务的伸缩方式为选择已有伸缩规则。 说明 不支持同时设置ScheduledAction和ScalingGroupId。 RecurrenceEndTime String 否 2014-08-20T16:55Z 重复执行定时任务的结束时间。按照ISO8601标准表示,并需要使用UTC时间。格式为:YYYY-MM-DDThh:mmZ。不能填写自修改当天起365日后的时间。 修改后,RecurrenceType、RecurrenceValue和RecurrenceEndTime需要同时有效。 LaunchTime String 否 2014-08-18T10:52Z 定时任务触发的时间点。按照ISO8601标准表示,并需要使用UTC时间。格式为:YYYY-MM-DDThh:mmZ。不能填写自修改当天起90日后的时间。 如果指定了RecurrenceType,则此属性指定的时间点,默认为循环执行的时间点。 如果未指定RecurrenceType,则按指定的日期和时间执行一次。 RecurrenceType String 否 Daily 重复执行定时任务的类型,取值范围: Daily:每多少天重复执行一次定时任务。 Weekly:每周指定几天重复执行一次定时任务。 Monthly:每月内指定几天重复执行一次定时任务。 Cron:按照指定的Cron表达式执行定时任务。 修改后,RecurrenceType、RecurrenceValue和RecurrenceEndTime需要同时有效。 RecurrenceValue String 否 2 重复执行定时任务的数值。 RecurrenceType取Daily时,只能填一个值,取值范围:1~31。 RecurrenceType取Weekly时,可以填入多个值,填多个值时使用英文逗号(,)分隔。比如,周日、周一、周二、周三、周四、周五、周六的值依次为:0,1,2,3,4,5,6。 RecurrenceType取Monthly时,格式为A-B。A、B的取值范围为1~31,并且B必须大于等于A。 RecurrenceType取Cron时,表示UTC时间,支持分、时、日、月、星期的5域表达式,支持通配符英文逗号(,)、英文问号(?)、连字符(-)、星号(*)、井号(#)、斜线(/)、L和W。 修改后,RecurrenceType、RecurrenceValue和RecurrenceEndTime需要同时有效。 TaskEnabled Boolean 否 true 是否启动定时任务。 true:启动定时任务。 false:停止定时任务。 LaunchExpirationTime Integer 否 600 定时任务触发操作失败后,在此时间内重试。单位为秒,取值范围:0~21600。 MinValue Integer 否 0 定时任务的伸缩方式为设置伸缩组内实例数量时,指定伸缩组内实例的最小数量。 MaxValue Integer 否 10 定时任务的伸缩方式为设置伸缩组内实例数量时,指定伸缩组内实例的最大数量。 DesiredCapacity Integer 否 10 定时任务的伸缩方式为设置伸缩组内实例数量时,指定伸缩组内实例的期望实例数。 说明 伸缩组必须支持设置期望实例数,即在创建该伸缩组时指定了DesiredCapacity。 ScalingGroupId String 否 asg-**** 定时任务触发时需要修改实例数量的伸缩组,填写伸缩组ID。指定ScalingGroupId后,定时任务的伸缩方式为设置伸缩组内实例数量,您需要为MinValue、MaxValue和DesiredCapacity中至少一个参数指定数量。 说明 不支持同时设置ScheduledAction和ScalingGroupId。 返回数据 名称 类型 示例值 描述 RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** 请求ID。 示例 请求示例 http://ess.aliyuncs.com/?Action=ModifyScheduledTask &ScheduledTaskId=edRtShc57WGXdt8TlPbr**** &LaunchTime=2014-08-18T10:52Z &RecurrenceEndTime=2014-08-20T16:55Z &<公共请求参数> 正常返回示例 XML 格式 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** JSON 格式 { "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****" } 错误码 访问错误中心查看更多错误码。 HttpCode 错误码 错误信息 描述 404 InvalidScheduledTaskId.NotFound The specified scheduled task does not exist. 指定的定时任务在该用户账号下不存在。 400 InvalidScheduledTaskName.Duplicate The specified value of parameter ScheduledTaskName is duplicated. 定时任务名已存在。 400 ScheduledAction.RegionMismatch The specified scheduled task and the specified scheduled action are not in the same Region. 指定的ScheduledAction与定时任务所在的地域不匹配。 调用ModifyScheduledTask修改一个定时任务的信息。 接口说明 定时任务支持两种伸缩方式。 通过ScheduledAction参数设置需要执行的伸缩规则。 通过ScalingGroupId参数设置伸缩组内实例数量。 说明 不支持同时设置ScheduledAction和ScalingGroupId。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试 请求参数 名称 类型 是否必选 示例值 描述 Action String 否 ModifyScheduledTask 系统规定参数,取值:ModifyScheduledTask。 ScheduledTaskId String 是 edRtShc57WGXdt8TlPbr**** 定时任务的ID。 ScheduledTaskName String 否 scheduled**** 定时任务的名称。2~64个英文或中文字符,以数字、大小字母或中文开头,可包含数字、下划线(_)、连字符(-)或点号(.)。同一账号同一地域内唯一。 Description String 否 fortest 定时任务的描述信息。2~200个英文或中文字符。 ScheduledAction String 否 ari:acs:ess:cn-qingdao:1344371:scalingRule/cCBpdYdQuBe2cUxOdu6**** 定时任务触发时需要执行的伸缩规则,填写伸缩规则的唯一标识符。指定ScheduledAction后,定时任务的伸缩方式为选择已有伸缩规则。 说明 不支持同时设置ScheduledAction和ScalingGroupId。 RecurrenceEndTime String 否 2014-08-20T16:55Z 重复执行定时任务的结束时间。按照ISO8601标准表示,并需要使用UTC时间。格式为:YYYY-MM-DDThh:mmZ。不能填写自修改当天起365日后的时间。 修改后,RecurrenceType、RecurrenceValue和RecurrenceEndTime需要同时有效。 LaunchTime String 否 2014-08-18T10:52Z 定时任务触发的时间点。按照ISO8601标准表示,并需要使用UTC时间。格式为:YYYY-MM-DDThh:mmZ。不能填写自修改当天起90日后的时间。 如果指定了RecurrenceType,则此属性指定的时间点,默认为循环执行的时间点。 如果未指定RecurrenceType,则按指定的日期和时间执行一次。 RecurrenceType String 否 Daily 重复执行定时任务的类型,取值范围: Daily:每多少天重复执行一次定时任务。 Weekly:每周指定几天重复执行一次定时任务。 Monthly:每月内指定几天重复执行一次定时任务。 Cron:按照指定的Cron表达式执行定时任务。 修改后,RecurrenceType、RecurrenceValue和RecurrenceEndTime需要同时有效。 RecurrenceValue String 否 2 重复执行定时任务的数值。 RecurrenceType取Daily时,只能填一个值,取值范围:1~31。 RecurrenceType取Weekly时,可以填入多个值,填多个值时使用英文逗号(,)分隔。比如,周日、周一、周二、周三、周四、周五、周六的值依次为:0,1,2,3,4,5,6。 RecurrenceType取Monthly时,格式为A-B。A、B的取值范围为1~31,并且B必须大于等于A。 RecurrenceType取Cron时,表示UTC时间,支持分、时、日、月、星期的5域表达式,支持通配符英文逗号(,)、英文问号(?)、连字符(-)、星号(*)、井号(#)、斜线(/)、L和W。 修改后,RecurrenceType、RecurrenceValue和RecurrenceEndTime需要同时有效。 TaskEnabled Boolean 否 true 是否启动定时任务。 true:启动定时任务。 false:停止定时任务。 LaunchExpirationTime Integer 否 600 定时任务触发操作失败后,在此时间内重试。单位为秒,取值范围:0~21600。 MinValue Integer 否 0 定时任务的伸缩方式为设置伸缩组内实例数量时,指定伸缩组内实例的最小数量。 MaxValue Integer 否 10 定时任务的伸缩方式为设置伸缩组内实例数量时,指定伸缩组内实例的最大数量。 DesiredCapacity Integer 否 10 定时任务的伸缩方式为设置伸缩组内实例数量时,指定伸缩组内实例的期望实例数。 说明 伸缩组必须支持设置期望实例数,即在创建该伸缩组时指定了DesiredCapacity。 ScalingGroupId String 否 asg-**** 定时任务触发时需要修改实例数量的伸缩组,填写伸缩组ID。指定ScalingGroupId后,定时任务的伸缩方式为设置伸缩组内实例数量,您需要为MinValue、MaxValue和DesiredCapacity中至少一个参数指定数量。 说明 不支持同时设置ScheduledAction和ScalingGroupId。 返回数据 名称 类型 示例值 描述 RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** 请求ID。 示例 请求示例 http://ess.aliyuncs.com/?Action=ModifyScheduledTask &ScheduledTaskId=edRtShc57WGXdt8TlPbr**** &LaunchTime=2014-08-18T10:52Z &RecurrenceEndTime=2014-08-20T16:55Z &<公共请求参数> 正常返回示例 XML 格式 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** JSON 格式 { "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****" } 错误码 访问错误中心查看更多错误码。 HttpCode 错误码 错误信息 描述 404 InvalidScheduledTaskId.NotFound The specified scheduled task does not exist. 指定的定时任务在该用户账号下不存在。 400 InvalidScheduledTaskName.Duplicate The specified value of parameter ScheduledTaskName is duplicated. 定时任务名已存在。 400 ScheduledAction.RegionMismatch The specified scheduled task and the specified scheduled action are not in the same Region. 指定的ScheduledAction与定时任务所在的地域不匹配。 调用ModifyScheduledTask修改一个定时任务的信息。 接口说明 定时任务支持两种伸缩方式。 通过ScheduledAction参数设置需要执行的伸缩规则。 通过ScalingGroupId参数设置伸缩组内实例数量。 说明 不支持同时设置ScheduledAction和ScalingGroupId。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试 请求参数 名称 类型 是否必选 示例值 描述 Action String 否 ModifyScheduledTask 系统规定参数,取值:ModifyScheduledTask。 ScheduledTaskId String 是 edRtShc57WGXdt8TlPbr**** 定时任务的ID。 ScheduledTaskName String 否 scheduled**** 定时任务的名称。2~64个英文或中文字符,以数字、大小字母或中文开头,可包含数字、下划线(_)、连字符(-)或点号(.)。同一账号同一地域内唯一。 Description String 否 fortest 定时任务的描述信息。2~200个英文或中文字符。 ScheduledAction String 否 ari:acs:ess:cn-qingdao:1344371:scalingRule/cCBpdYdQuBe2cUxOdu6**** 定时任务触发时需要执行的伸缩规则,填写伸缩规则的唯一标识符。指定ScheduledAction后,定时任务的伸缩方式为选择已有伸缩规则。 说明 不支持同时设置ScheduledAction和ScalingGroupId。 RecurrenceEndTime String 否 2014-08-20T16:55Z 重复执行定时任务的结束时间。按照ISO8601标准表示,并需要使用UTC时间。格式为:YYYY-MM-DDThh:mmZ。不能填写自修改当天起365日后的时间。 修改后,RecurrenceType、RecurrenceValue和RecurrenceEndTime需要同时有效。 LaunchTime String 否 2014-08-18T10:52Z 定时任务触发的时间点。按照ISO8601标准表示,并需要使用UTC时间。格式为:YYYY-MM-DDThh:mmZ。不能填写自修改当天起90日后的时间。 如果指定了RecurrenceType,则此属性指定的时间点,默认为循环执行的时间点。 如果未指定RecurrenceType,则按指定的日期和时间执行一次。 RecurrenceType String 否 Daily 重复执行定时任务的类型,取值范围: Daily:每多少天重复执行一次定时任务。 Weekly:每周指定几天重复执行一次定时任务。 Monthly:每月内指定几天重复执行一次定时任务。 Cron:按照指定的Cron表达式执行定时任务。 修改后,RecurrenceType、RecurrenceValue和RecurrenceEndTime需要同时有效。 RecurrenceValue String 否 2 重复执行定时任务的数值。 RecurrenceType取Daily时,只能填一个值,取值范围:1~31。 RecurrenceType取Weekly时,可以填入多个值,填多个值时使用英文逗号(,)分隔。比如,周日、周一、周二、周三、周四、周五、周六的值依次为:0,1,2,3,4,5,6。 RecurrenceType取Monthly时,格式为A-B。A、B的取值范围为1~31,并且B必须大于等于A。 RecurrenceType取Cron时,表示UTC时间,支持分、时、日、月、星期的5域表达式,支持通配符英文逗号(,)、英文问号(?)、连字符(-)、星号(*)、井号(#)、斜线(/)、L和W。 修改后,RecurrenceType、RecurrenceValue和RecurrenceEndTime需要同时有效。 TaskEnabled Boolean 否 true 是否启动定时任务。 true:启动定时任务。 false:停止定时任务。 LaunchExpirationTime Integer 否 600 定时任务触发操作失败后,在此时间内重试。单位为秒,取值范围:0~21600。 MinValue Integer 否 0 定时任务的伸缩方式为设置伸缩组内实例数量时,指定伸缩组内实例的最小数量。 MaxValue Integer 否 10 定时任务的伸缩方式为设置伸缩组内实例数量时,指定伸缩组内实例的最大数量。 DesiredCapacity Integer 否 10 定时任务的伸缩方式为设置伸缩组内实例数量时,指定伸缩组内实例的期望实例数。 说明 伸缩组必须支持设置期望实例数,即在创建该伸缩组时指定了DesiredCapacity。 ScalingGroupId String 否 asg-**** 定时任务触发时需要修改实例数量的伸缩组,填写伸缩组ID。指定ScalingGroupId后,定时任务的伸缩方式为设置伸缩组内实例数量,您需要为MinValue、MaxValue和DesiredCapacity中至少一个参数指定数量。 说明 不支持同时设置ScheduledAction和ScalingGroupId。 返回数据 名称 类型 示例值 描述 RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** 请求ID。 示例 请求示例 http://ess.aliyuncs.com/?Action=ModifyScheduledTask &ScheduledTaskId=edRtShc57WGXdt8TlPbr**** &LaunchTime=2014-08-18T10:52Z &RecurrenceEndTime=2014-08-20T16:55Z &<公共请求参数> 正常返回示例 XML 格式 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** JSON 格式 { "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****" } 错误码 访问错误中心查看更多错误码。 HttpCode 错误码 错误信息 描述 404 InvalidScheduledTaskId.NotFound The specified scheduled task does not exist. 指定的定时任务在该用户账号下不存在。 400 InvalidScheduledTaskName.Duplicate The specified value of parameter ScheduledTaskName is duplicated. 定时任务名已存在。 400 ScheduledAction.RegionMismatch The specified scheduled task and the specified scheduled action are not in the same Region. 指定的ScheduledAction与定时任务所在的地域不匹配。 调用ModifyScheduledTask修改一个定时任务的信息。 接口说明 定时任务支持两种伸缩方式。 通过ScheduledAction参数设置需要执行的伸缩规则。 通过ScalingGroupId参数设置伸缩组内实例数量。 说明 不支持同时设置ScheduledAction和ScalingGroupId。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试 请求参数 名称 类型 是否必选 示例值 描述 Action String 否 ModifyScheduledTask 系统规定参数,取值:ModifyScheduledTask。 ScheduledTaskId String 是 edRtShc57WGXdt8TlPbr**** 定时任务的ID。 ScheduledTaskName String 否 scheduled**** 定时任务的名称。2~64个英文或中文字符,以数字、大小字母或中文开头,可包含数字、下划线(_)、连字符(-)或点号(.)。同一账号同一地域内唯一。 Description String 否 fortest 定时任务的描述信息。2~200个英文或中文字符。 ScheduledAction String 否 ari:acs:ess:cn-qingdao:1344371:scalingRule/cCBpdYdQuBe2cUxOdu6**** 定时任务触发时需要执行的伸缩规则,填写伸缩规则的唯一标识符。指定ScheduledAction后,定时任务的伸缩方式为选择已有伸缩规则。 说明 不支持同时设置ScheduledAction和ScalingGroupId。 RecurrenceEndTime String 否 2014-08-20T16:55Z 重复执行定时任务的结束时间。按照ISO8601标准表示,并需要使用UTC时间。格式为:YYYY-MM-DDThh:mmZ。不能填写自修改当天起365日后的时间。 修改后,RecurrenceType、RecurrenceValue和RecurrenceEndTime需要同时有效。 LaunchTime String 否 2014-08-18T10:52Z 定时任务触发的时间点。按照ISO8601标准表示,并需要使用UTC时间。格式为:YYYY-MM-DDThh:mmZ。不能填写自修改当天起90日后的时间。 如果指定了RecurrenceType,则此属性指定的时间点,默认为循环执行的时间点。 如果未指定RecurrenceType,则按指定的日期和时间执行一次。 RecurrenceType String 否 Daily 重复执行定时任务的类型,取值范围: Daily:每多少天重复执行一次定时任务。 Weekly:每周指定几天重复执行一次定时任务。 Monthly:每月内指定几天重复执行一次定时任务。 Cron:按照指定的Cron表达式执行定时任务。 修改后,RecurrenceType、RecurrenceValue和RecurrenceEndTime需要同时有效。 RecurrenceValue String 否 2 重复执行定时任务的数值。 RecurrenceType取Daily时,只能填一个值,取值范围:1~31。 RecurrenceType取Weekly时,可以填入多个值,填多个值时使用英文逗号(,)分隔。比如,周日、周一、周二、周三、周四、周五、周六的值依次为:0,1,2,3,4,5,6。 RecurrenceType取Monthly时,格式为A-B。A、B的取值范围为1~31,并且B必须大于等于A。 RecurrenceType取Cron时,表示UTC时间,支持分、时、日、月、星期的5域表达式,支持通配符英文逗号(,)、英文问号(?)、连字符(-)、星号(*)、井号(#)、斜线(/)、L和W。 修改后,RecurrenceType、RecurrenceValue和RecurrenceEndTime需要同时有效。 TaskEnabled Boolean 否 true 是否启动定时任务。 true:启动定时任务。 false:停止定时任务。 LaunchExpirationTime Integer 否 600 定时任务触发操作失败后,在此时间内重试。单位为秒,取值范围:0~21600。 MinValue Integer 否 0 定时任务的伸缩方式为设置伸缩组内实例数量时,指定伸缩组内实例的最小数量。 MaxValue Integer 否 10 定时任务的伸缩方式为设置伸缩组内实例数量时,指定伸缩组内实例的最大数量。 DesiredCapacity Integer 否 10 定时任务的伸缩方式为设置伸缩组内实例数量时,指定伸缩组内实例的期望实例数。 说明 伸缩组必须支持设置期望实例数,即在创建该伸缩组时指定了DesiredCapacity。 ScalingGroupId String 否 asg-**** 定时任务触发时需要修改实例数量的伸缩组,填写伸缩组ID。指定ScalingGroupId后,定时任务的伸缩方式为设置伸缩组内实例数量,您需要为MinValue、MaxValue和DesiredCapacity中至少一个参数指定数量。 说明 不支持同时设置ScheduledAction和ScalingGroupId。 返回数据 名称 类型 示例值 描述 RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** 请求ID。 示例 请求示例 http://ess.aliyuncs.com/?Action=ModifyScheduledTask &ScheduledTaskId=edRtShc57WGXdt8TlPbr**** &LaunchTime=2014-08-18T10:52Z &RecurrenceEndTime=2014-08-20T16:55Z &<公共请求参数> 正常返回示例 XML 格式 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** JSON 格式 { "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****" } 错误码 访问错误中心查看更多错误码。 HttpCode 错误码 错误信息 描述 404 InvalidScheduledTaskId.NotFound The specified scheduled task does not exist. 指定的定时任务在该用户账号下不存在。 400 InvalidScheduledTaskName.Duplicate The specified value of parameter ScheduledTaskName is duplicated. 定时任务名已存在。 400 ScheduledAction.RegionMismatch The specified scheduled task and the specified scheduled action are not in the same Region. 指定的ScheduledAction与定时任务所在的地域不匹配。 调用DescribeScheduledTasks查询定时任务的信息。 接口说明 您可以通过定时任务的ID、名称和定时任务执行的伸缩规则查询的定时任务。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试 请求参数 名称 类型 是否必选 示例值 描述 Action String 否 DescribeScheduledTasks 系统规定参数,取值:DescribeScheduledTasks。 RegionId String 是 cn-qingdao 定时任务所属伸缩组的地域ID。 PageNumber Integer 否 1 定时任务列表的页码,起始值:1。 默认值:1。 PageSize Integer 否 50 分页查询时设置的每页行数,最大值:50。 默认值:10。 ScheduledAction.1 String 否 ari:acs:ess:cn-qingdao:1344371:scalingrule/cCBpdYdQuBe2cUxOdu6**** ScheduledAction.N为对应定时任务在触发时需要执行的操作,N的取值范围:1~20。 ScheduledTaskId.1 String 否 edRtShc57WGXdt8TlPbr**** ScheduledTaskId.N为待查询定时任务的ID,N的取值范围:1~20。 ScheduledTaskName.1 String 否 edRtShc57WGXdt8TlPbr**** ScheduledTaskName.N为待查询定时任务的名称,N的取值范围:1~20。 返回数据 名称 类型 示例值 描述 PageNumber Integer 1 当前页码。 PageSize Integer 50 每页行数。 RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E 请求ID。 ScheduledTasks Array 定时任务信息组成的集合。 TotalCount Integer 1 定时任务总数。 示例 请求示例 http://ess.aliyuncs.com/?Action=DescribeScheduledTasks &RegionId=cn-qingdao &ScheduledTaskId.1=edRtShc57WGXdt8TlPbr**** &PageSize=50 &<公共请求参数> 正常返回示例 XML 格式 600 Daily 2020-03-02T00:00Z asg- false demo1 1 2020-03-01T00:00Z cV0bJbAXpipdbFI1NbM 31 600 1 Daily 2020-02-27T00:00Z asg- true demo2 2020-02-26T00:00Z cD3G3pesE65NcSTmkld1 31 1 34 10 4CF33369-7318-4BD5-BE1C-A776BA2C6627 JSON 格式 { "ScheduledTasks": { "ScheduledTask": [ { "LaunchExpirationTime": 600, "RecurrenceType": "Daily", "RecurrenceEndTime": "2020-03-02T00:00Z", "ScalingGroupId": "asg-", "TaskEnabled": false, "ScheduledTaskName": "demo1", "MaxValue": 1, "LaunchTime": "2020-03-01T00:00Z", "ScheduledTaskId": "cV0bJbAXpipdbFI1NbM", "RecurrenceValue": "31" }, { "LaunchExpirationTime": 600, "MinValue": 1, "RecurrenceType": "Daily", "RecurrenceEndTime": "2020-02-27T00:00Z", "ScalingGroupId": "asg-", "TaskEnabled": true, "ScheduledTaskName": "demo2", "LaunchTime": "2020-02-26T00:00Z", "ScheduledTaskId": "cD3G3pesE65NcSTmkld1", "RecurrenceValue": "31" } ] }, "PageNumber": 1, "TotalCount": 34, "PageSize": 10, "RequestId": "4CF33369-7318-4BD5-BE1C-A776BA2C6627" } 错误码 访问错误中心查看更多错误码。调用DeleteScheduledTask删除一个定时任务。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试 请求参数 名称 类型 是否必选 示例值 描述 ScheduledTaskId String 是 edRtShc57WGXdt8TlPbr**** 定时任务的ID。 Action String 否 DeleteScheduledTask 系统规定参数,取值:DeleteScheduledTask。 返回数据 名称 类型 示例值 描述 RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E 请求ID。 示例 请求示例 http://ess.aliyuncs.com/?Action=DeleteScheduledTask &ScheduledTaskId=edRtShc57WGXdt8TlPbr**** &<公共请求参数> 正常返回示例 XML 格式 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E JSON 格式 { "RequestId":"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E" } 错误码 访问错误中心查看更多错误码。 HttpCode 错误码 错误信息 描述 404 InvalidScheduledTaskId.NotFound The specified scheduled task does not exist. 指定的定时任务在该用户账号下不存在。
1934890530796658 2020-03-24 22:21:05 0 浏览量 回答数 0

问题

thinkphp 5.1 使用的定时操作方式 php think cron ,如何在函数定时器里面配置

thinkphp 5.1 使用的定时操作方式 php think cron ,如何在函数定时器里面配置...
flycontroller 2019-12-01 19:29:59 1768 浏览量 回答数 1

回答

如果您暂时不需要一个定时任务触发伸缩活动,可以停用定时任务。 前提条件 定时任务处于运行中状态。 操作步骤 登录弹性伸缩控制台。 在左侧导航栏中,单击自动触发任务管理 > 定时任务。 在顶部状态栏处,选择地域。 找到待操作的定时任务,在操作列中,单击停用。 单击确定。
1934890530796658 2020-03-21 23:44:29 0 浏览量 回答数 0

问题

是否支持在应用内启用高精度定时器?启用后能保证的定时器精度是多少?

是否支持在应用内启用高精度定时器?启用后能保证的定时器精度是多少?...
大耳朵陈 2019-12-01 19:43:12 1313 浏览量 回答数 1

问题

Apachehttpserver 和 tomcat做负载均衡,项目里有一个定时器,运行报错。

环境:ApacheHttpServer + 4个tomcat做负载均衡项目里面有一个定时器,每个tomcat在运行的时候都会执行这个定时器,然后总是报错。问题:像我这样做负载的时候是否需要把其他三个tomcat项目的定时器注释掉,只留一个,...
落地花开啦 2019-12-01 19:42:37 803 浏览量 回答数 1

问题

定时扫描数据表删除过时数据怎么实现?

的数据表是这样设计的,有一个字段是 expired_time 是用来保存过期的时间的,我想做一个定时器定时扫描表,过期的行我就删掉。可是感觉用定时器可能不太精准,如果定时器间隔比较小,虽然误差小了,但是又感觉会查询得太频繁了。我现在想问,会...
蛮大人123 2019-12-01 20:06:44 987 浏览量 回答数 1

回答

如果您需要继续使用一个已停用的定时任务,可以重新启用定时任务,在指定的时间继续使用。 前提条件 定时任务处于停止状态。 操作步骤 登录弹性伸缩控制台。 在左侧导航栏中,单击自动触发任务管理 > 定时任务。 在顶部状态栏处,选择地域。 找到待操作的定时任务,在操作列中,单击启用。 单击确定。
1934890530796658 2020-03-21 23:46:18 0 浏览量 回答数 0

问题

flink里面正确使用定时任务加载外部数据的操作时什么样的?我代码里面有个定时,但是调用#Flink

flink里面正确使用定时任务加载外部数据的操作时什么样的?我代码里面有个定时,但是调用接口报错SocketException: Bad file descriptor (Write failed)。 我想要通...
黄一刀 2020-05-18 21:49:27 0 浏览量 回答数 1

问题

云服务器 ECS Linux 任务计划 crontab 配置,用 crontab 来实现定时任务时,创建定时任务失败,提示 command not found

云服务器 ECS Linux 任务计划 crontab 配置,用 crontab 来实现定时任务时,创建定时任务失败,提示 command not found...
行者武松 2019-12-01 19:33:03 1458 浏览量 回答数 1

回答

背景信息 步骤一:创建伸缩规则 步骤二:创建定时任务 执行结果 弹性伸缩能够通过定时任务自动执行伸缩规则,添加或移出ECS实例。本文介绍如何自动扩张,向伸缩组添加2台ECS实例。 前提条件 已创建伸缩组和伸缩配置。 背景信息 本文使用创建伸缩组和伸缩配置一文中创建的伸缩组MyFirstScalingGroup和伸缩配置MyFirstScalingConfiguration演示自动扩张的效果,伸缩组中已经有1台ECS实例。 您也可以利用定时任务实现自动收缩,更多信息请参见创建定时任务。 步骤一:创建伸缩规则 登录弹性伸缩控制台。 找到待操作的伸缩组,选择一种方式打开伸缩组详情页面。 在伸缩组名称/ID列中,单击伸缩组名称。 在操作列中,单击管理。 在左侧导航栏中,单击伸缩规则。 单击创建伸缩规则。 设置伸缩规则属性。 填写伸缩规则名称。 本示例中为Add2。 选择伸缩规则类型。 本示例中为简单规则。 选择执行的操作。 本示例中为增加2台。 单击创建伸缩规则。 步骤二:创建定时任务 在左侧导航栏中,单击自动触发任务管理 > 定时任务。 单击创建定时任务。 设置定时任务属性。 填写任务名称。 本示例中为ScheduledScalingOut。 填写描述。 本示例中为定时添加2台实例。 选择执行时间。 本示例中设置为当前时间的5分钟后,即2019-11-11 16:35。 选择伸缩规则。 指定步骤一中创建的伸缩规则Add2。 单击提交。 执行结果 到执行时间2019-11-11 16:35后,定时任务ScheduledScalingOut自动执行伸缩规则Add2,向伸缩组MyFirstScalingGroup增加2台ECS实例。您可以前往伸缩活动列表查看详情。
1934890530796658 2020-03-21 22:52:31 0 浏览量 回答数 0

问题

node中的process.nextTick 与 js定时器调用的原理区别问题?

按照《JavaScript高级程序设计》中关于定时器的描述,我觉得定时器也是需要等待之前事件队列中的事件执行完毕,才会执行定时器任务。直到在看到《node.js高级编程》一书,上面有这么一段话process.nextTick不也是需要等待之...
a123456678 2019-12-01 20:20:46 1362 浏览量 回答数 1

回答

如果业务量的变化时间可预测,您可以创建定时任务,在业务高峰到达前准备好足量的计算资源,或者在业务高峰后释放空闲的计算资源。 背景信息 定时任务是一种预设任务,可以在指定时间执行指定伸缩规则,实现自动扩张或者收缩计算资源,满足业务需求的同时又能控制成本。您还可以为定时任务指定重复周期,通过灵活的规则应对业务量的变化。 说明 一个账号下可以创建的定时任务数量有限,请参见使用限制。 由于在同一时刻一个伸缩组中只能存在一个伸缩活动,定时任务还支持设置自动重试时间,避免因为单次执行伸缩规则失败影响定时任务的结果。如果同一分钟内存在多个待执行的定时任务,弹性伸缩会执行最新创建的定时任务。 操作步骤 登录弹性伸缩控制台。 在左侧导航栏中,单击自动触发任务管理 > 定时任务。 在顶部状态栏处,选择地域。 单击创建定时任务。 配置定时任务。 配置任务名称。 名称为2-64个字符,以大小写字母、数字或中文开头,可包含英文句号(.)、下划线(_)或短横线(-)。 填写描述。 描述定时任务的目的、作用等信息,便于日后查看。 配置执行时间。 定时任务的触发时间。 配置伸缩规则。 指定定时任务触发时执行的伸缩规则。 配置重试过期时间。 时间范围是0秒-21600秒(6小时)。如果未能在执行时间触发伸缩动作,弹性伸缩将在重试过期时间内继续尝试执行定时任务。 (可选)配置重复周期。 重复执行定时任务的周期,您可以选择按日、周、月的方式重复。如果要求多样,也可以使用Cron表达式,详细介绍请参见Cron表达式。 单击提交。 Cron表达式 Cron表达式采用UTC+0时区,在中国换算成系统本地时间时需要加8小时。另外,第一次执行Cron表达式的时间必须小于重复结束时间,否则会导致定时任务创建失败。 Cron表达式是一个字符串,字符串以若干个空格隔开,分为5到7个域。弹性伸缩定时任务支持5域的Cron表达式,分别是分钟、小时、日、月和星期,取值范围如下表所示。 域 是否必需 取值范围 分钟 是 [0, 59] 小时 是 [0, 23] 日 是 [1, 31] 月 是 [1, 12] 星期 是 [0, 7],星期日 = 0 或 7 在同一个域内可以填写多个数值,方法如下: 利用逗号(,)指定多个值,例如:1,3,4,7,8。 利用短横线(-)指定值的范围,例如:1-6,结果等同于1,2,3,4,5,6。 利用星号()指定任何可能的值,例如:小时域中填写星号代表每个整点,结果等同于0-23。 利用正斜线(/)指定间隔频率,例如:小时域中填写0-23/2表示每2小时执行一次。同时正斜线可以和星号一起使用,例如:小时域中填写/3表示每3小时执行一次。
1934890530796658 2020-03-21 23:42:52 0 浏览量 回答数 0

问题

阿里云应该增加宽带定时升级功能

好多人都需要,每天高峰期 定时升级宽带 比如每天晚上8点到凌晨0点 定时升级宽带到几兆 或者星期6和星期7 定时升级宽带到几兆 不用一次次登陆后台...
老云 2019-12-01 21:17:33 3487 浏览量 回答数 4

问题

关于Spring Quartz......

可以动态修改执行时间的Spring Quartz定时器,怎么设置tomcat启动时不执行定时器,或者cronExpression 怎么设置成任何时间都不执行,动态修改触发时间的时候再执行定时器?怎么样结束定时器?求指导...
a123456678 2019-12-01 20:22:52 878 浏览量 回答数 1

问题

Spring 定时任务存先后关系如何配置

场景: 定时任务 A 每天晚上11点执行一次 定时任务B 每天晚上执行一次,需要在A执行完成后再执行 我的做法是将AB任务合成一个任务。现在PM要求将其拆解成两个定时任务,请问我要怎么做,才能实现任务队列...
a123456678 2019-12-01 20:24:28 852 浏览量 回答数 1

问题

为什么我购买的ACE创建定时器定时器(Cron)在捆绑域名的时候老是失败?

为什么我购买的ACE创建定时器定时器(Cron)在捆绑域名的时候老是失败?该域名已经备案了,测试了好多次都是这样,没办法启动,老是失败?急,麻烦看看...
飛天之家 2019-12-01 19:43:09 1255 浏览量 回答数 1

问题

Spring 定时任务存先后关系该如何配置??

场景: 定时任务 A 每天晚上11点执行一次 定时任务B 每天晚上执行一次,需要在A执行完成后再执行 我的做法是将AB任务合成一个任务。现在PM要求将其拆解成两个定时任务,请问我要怎么做,才能实现任务队列...
小旋风柴进 2019-12-01 20:05:26 784 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 企业建站模板