Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Snowflake cloud data platform 雪花:在it之外启动任务';What’预定时间_Snowflake Cloud Data Platform - Fatal编程技术网

Snowflake cloud data platform 雪花:在it之外启动任务';What’预定时间

Snowflake cloud data platform 雪花:在it之外启动任务';What’预定时间,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,我创建了一个任务: CREATE OR REPLACE TASK TASK_1 WAREHOUSE = WAREHOUSE SCHEDULE = 'USING CRON 30 1 * * * America/Detroit' AS .... 每天凌晨1:30开始。 有没有办法按需执行此查询? i、 e.类似于: TRIGGER TASK TASK_1; 目前,无法在计划或任务依赖项之外显式执行任务 mRainey的答案是正确的。不能在计划或任务依赖项之外计划任务。这

我创建了一个任务:

CREATE OR REPLACE TASK TASK_1

    WAREHOUSE = WAREHOUSE
    SCHEDULE = 'USING CRON 30 1 * * * America/Detroit'
    AS
....
每天凌晨1:30开始。 有没有办法按需执行此查询? i、 e.类似于:

TRIGGER TASK TASK_1;

目前,无法在计划或任务依赖项之外显式执行任务

mRainey的答案是正确的。不能在计划或任务依赖项之外计划任务。这是OP问题的正确答案

对于其他偶然发现这个答案的人,您可以让自己更轻松地在不同的时间安排任务:

CREATE OR REPLACE PROCEDURE "SCHEDULE_TASK_AT_TIME"(TASK_NAME VARCHAR, HOUR float, MINUTE float)
RETURNS VARIANT
LANGUAGE JAVASCRIPT

    AS $$

    var return_rows = [];

    var task_name = TASK_NAME;
    var h = HOUR;
    var m = MINUTE;

    var default_timezone = 'America/Los_Angeles';

    var new_chron = 'USING CRON ' + m +  ' ' + h + ' * * * ' + default_timezone;

    var stmt = snowflake.createStatement({sqlText: `
        DESCRIBE TASK IDENTIFIER(:1)
    `, binds:[task_name]});
    res = stmt.execute();

    res.next();
    var old_chron = res.getColumnValue(8);

    var stmt = snowflake.createStatement({sqlText: `
        ALTER TASK IDENTIFIER(:1) SUSPEND
    `, binds:[task_name]});
    res = stmt.execute();  

    var stmt = snowflake.createStatement({sqlText: `
        ALTER TASK IDENTIFIER(:1) SET SCHEDULE = :2
    `, binds:[task_name, new_chron]});
    res = stmt.execute();   

    var stmt = snowflake.createStatement({sqlText: `
        ALTER TASK IDENTIFIER(:1) RESUME
    `, binds:[task_name]});
    res = stmt.execute();  


    return_rows.push('Old Chron: ' + old_chron);
    return_rows.push('New Chron: ' + new_chron);

    return return_rows;

    $$;
然后,您可以像这样安排任务,在接下来的22:38运行:

call SCHEDULE_TASK_AT_TIME('DEMO_TASK', 22, 38);
此过程的输出为您提供了旧的计时时间和新的计时时间,因此您可以在完成后轻松地将其设置回原位

请务必小心,并注意它的局限性-在我的版本中,您必须硬编码时区


此外,我没有研究是否可以设置一个chron只执行一次,因此无论您设置它的时间和分钟,它每天都会这样运行,除非您采取进一步的行动。

您应该选择一个答案。