ScheduledTask

ScheduledTask[expr,timespec]

表示在由 timespec 定义的日程上计算的任务计划.

更多信息和选项

  • CloudDeploy[ScheduledTask[]] 部署一个要在云端执行的预定任务.
  • SessionSubmitLocalSubmitCloudSubmit 提交在当前会话,本地系统或云端的后台进行计算的预定任务.
  • 可用 TaskSuspendTaskResume 等来控制提交的任务.
  • 参数 expr 可以是要运行的 Wolfram 语言代码、CloudObject 或含有 Wolfram 语言输入的 File.
  • 可以给出下列 period 指定:
  • "Hourly"一小时运行一次
    "Daily"一天运行一次
    "Weekly"一星期运行一次
    "Monthly"一个月运行一次
    "Yearly"一年运行一次
    Quantity[...]按指定的时间间隔运行
  • 可以给出下列 timespec 指定:
  • period每个 period 运行一次
    {period}period 后运行一次
    {period, count}只在 count 时间运行
  • 当任务运行时,可以给出以下规范进行限制:
  • {start,timespec}在日期 start 时开始运行
    {timespec,end}在日期 end 时结束运行
    {start,timespec,end}在日期 startend 之间运行
  • startend 参数应以 DateObject 或其他时间规范给出.
  • 可以给定其他 timespec 规范:
  • DateObject[patt]在匹配指定模式的时间下运行
    "cronspec"在由 Unix 克龙指定的时间下运行
    Now立即运行
    None只在有指令时运行
  • DateObject[patt] 中,模式 patt 具有格式 {y,m,d,h,m,s},其中后来的元素可以去掉,并且每个元素可以是整数、形式为的整数选择 n1|n2| 或者 _ 表示任意可能数值. 对于天元素,天可以用诸如 Monday 表明一个星期的某一天的符号替换.
  • 可以给出下列选项:
  • AutoRemoveFalse在完成最后一次计划的运行后移除任务
    NotificationFunction Automatic如何提供通知
    TimeZoneAutomatic调度的时区
  • NotificationFunction 而言,如果任务输出为 $Failed 或一个 Failure 对象,那么该任务被认为已经失败.
  • 在云端中,运行安任务计划的精确时间通常由负载平衡要求确定.
  • 云端中重复一个任务间隔的最小时间由云配置和策略确定,并且将是一个小时的某个分数.

范例

打开所有单元关闭所有单元

基本范例  (4)

在本地会话中创建预定任务:

Print 的输出会显示在 Messages 窗口中.

删除该任务:

在独立内核中创建预定任务:

Print 的输出会显示在 Messages 窗口中.

删除任务:

创建一个云任务计划,在下个月每天都给任务所有者发送含有温度信息的电子邮件:

删除任务:

部署一个预定的云任务,每小时记录一次日期和温度:

手动运行任务进行测试,无需等待下一次预定的运行:

获取以前的结果:

删除任务:

范围  (9)

时间指定  (9)

创建一个没有时间表的任务:

手动激活任务:

删除任务:

使用 Nowtimespec 在当前内核会话中提交立即运行的任务:

任务被自动删除:

提交在云端立即运行的任务:

任务运行后,将不再存在于云端:

部署没有时间表的任务:

运行后部署的任务(用 CloudDeploy 部署,不是 CloudSubmit)依然存在于云端:

删除部署的任务:

创建一个每秒运行 10 次的任务,并在运行时显示其进度:

部署一项每日都要执行的任务,从明天开始发送倒计时电子邮件:

为了测试任务,触发它立即运行:

删除任务:

部署一项每日都要执行的任务,在一年结束后发送倒计时电子邮件:

为了测试任务,触发它立即运行:

删除任务:

部署一项每日都要执行的任务,从明天开始发送倒计时电子邮件,并在年底时结束:

为了测试任务,触发它立即运行:

删除任务:

创建一个在一周中的某些日子早上 7 点运行的任务:

确认下一次运行日期符合预期:

删除任务:

创建一个预定的云任务,使用 "cronspec" 指定记录工作日金融工具的开盘价:

删除任务:

创建一个预定的云任务,每天更新一次云中的时间戳:

获取当前的时间戳:

TaskExecute 运行预定的云任务对象:

时间戳已被更新:

删除任务:

推广和延伸  (1)

使用 TaskSuspend 暂停预定的云任务计划的执行:

删除该任务:

选项  (1)

NotificationFunction  (1)

通知允许被指示的一方收到关于任务评价的状态消息. 部署一个任务,在每次运行后通知多方:

触发任务,使其异步运行:

触发任务,再次运行:

删除该任务:

应用  (1)

创建基于任务计划发送电子邮件的应用:

创建一个任务计划,在每天18:00时会计算并确认第二天的月相:

删除该任务:

可能存在的问题  (2)

涉及数字的时间规范看起来可能不明确:

通过提供明确的时间段和重复次数来解决歧义:

删除该任务:

如果部署它们的月份中的那一天在下一次预期运行中不存在,与日历一致的已命名的时间段 "Monthly""Yearly" 可能会漏掉一次运行,例如,在 2 月29 日部署 "Yearly" 任务:

删除任务:

为了避免这种情况,请控制开始的日期,使其不会落在月底可能有问题的那一天:

Wolfram Research (2014),ScheduledTask,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ScheduledTask.html (更新于 2017 年).

文本

Wolfram Research (2014),ScheduledTask,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ScheduledTask.html (更新于 2017 年).

CMS

Wolfram 语言. 2014. "ScheduledTask." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2017. https://reference.wolfram.com/language/ref/ScheduledTask.html.

APA

Wolfram 语言. (2014). ScheduledTask. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ScheduledTask.html 年

BibTeX

@misc{reference.wolfram_2024_scheduledtask, author="Wolfram Research", title="{ScheduledTask}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/ScheduledTask.html}", note=[Accessed: 21-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_scheduledtask, organization={Wolfram Research}, title={ScheduledTask}, year={2017}, url={https://reference.wolfram.com/language/ref/ScheduledTask.html}, note=[Accessed: 21-November-2024 ]}