首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >雪花根任务挂起后如何恢复?

雪花根任务挂起后如何恢复?
EN

Stack Overflow用户
提问于 2021-02-24 01:28:24
回答 2查看 235关注 0票数 0

我有以下根任务和子任务。一切正常,但我怎么能让TSK_ROOT在挂起后自动恢复?我是否必须执行另一个任务来检查TSK_ROOT是否挂起?这不是违背了根任务的目的吗?

代码语言:javascript
复制
CREATE OR REPLACE TASK TSK_ROOT
    WAREHOUSE  = MYWH
    SCHEDULE = '5 MINUTE'
WHEN
    SYSTEM$STREAM_HAS_DATA('<stream_name>')
AS 
    ALTER TASK TSK_ROOT SUSPEND;
 
CREATE OR REPLACE TASK TKS_ONE
    WAREHOUSE = MYWH
    AFTER TSK_ROOT
AS
     ....
EN

回答 2

Stack Overflow用户

发布于 2021-02-24 05:12:04

我从评论中理解的是:

  • TKS_ONE在运行TSK_ROOT.
  • Question之后运行假设TKS_ONE仅在TSK_ROOT挂起后运行,因此TSK_ROOT并入挂起itself.
  • That's的代码不一定是真的。TSK_ROOT可以运行任何东西,例如select 1 x,而TKS_ONE可以运行。

因此,为了避免挂起TSK_ROOT,请不要在TSK_ROOT中挂起它。

检查此示例:

票数 0
EN

Stack Overflow用户

发布于 2021-02-24 06:24:39

挂起/恢复应用于打开(恢复)或关闭(挂起)维护代码,而不是作为操作功能。

也许可以试试这样的东西

SCHEDULE =‘使用CRON */5 9*** PST8PDT’

因为在when子句中有SYSTEM$STREAM_HAS_DATA(''),所以如果流是空的,它将不会恢复您的仓库/消耗信用。

如果这是一个理论问题,而不是一个可操作的问题:

对于任何具有计划的任务链和以下顺序的任务,如下所示

根目录(调度)--任务1(在根目录之后)--任务2(在task1之后)--任务3(在task2之后)

“‘suspend”必须从左侧应用,“resume”必须从右侧应用。序列可能如下所示

代码语言:javascript
复制
resumed -- suspended -- resumed -- suspended

但在实践中,它应该总是看起来像这样

代码语言:javascript
复制
resumed   -- resumed   -- resumed   -- resumed 
suspended -- resumed   -- resumed   -- resumed 
suspended -- suspended -- resumed   -- resumed 
suspended -- suspended -- suspended -- resumed 
suspended -- suspended -- suspended -- suspended 

因此,在这种情况下,如果您的操作目标是运行一次task1。

让根用户执行一个不做任何事情的语句,比如select current_date;

对task1执行必须执行的操作,然后让task2 'alter task root suspend;‘

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66338099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档