首页 > 解决方案 > 雪花 cron 任务错误?(不能在每个月的 x 天做)

问题描述

我相信使用 cron 作业的任务调度存在重大缺陷 - 如果我错了或者我遗漏了一些东西,请纠正我:

如果安排在未来几个月的所需日期之前的一个月中的某一天,那就太好了(今天是第 5 天,我可以将任务安排为每月第 6 天或 5 到 12 之间的任何日期参数)

CREATE OR REPLACE TASK MYTASK
 WAREHOUSE= XXX
 SCHEDULE = 'USING CRON 1 17 6 * * Asia/Kuala_Lumpur'
AS CALL SP_ALL_OPS();


ALTER TASK MYTASK RESUME;


select * from table(information_schema.task_history(task_name=>'MYTASK')) WHERE STATE = 'SCHEDULED';

如果安排在未来几个月的所需日期之前的一个月中的某一天,那就不好了(今天是第 5 天,我不能安排每个月第 1 天的任务)。补充:任务只能接受 5 到 12 之间的一天(正好 1 周)。超出这个范围的数字根本不能用(BIZARRE BEHAVIOR @@)

CREATE OR REPLACE TASK MYTASK
 WAREHOUSE= XXX
 SCHEDULE = 'USING CRON 1 17 1 * * Asia/Kuala_Lumpur'
AS CALL SP_ALL_OPS();


ALTER TASK MYTASK RESUME;


select * from table(information_schema.task_history(task_name=>'MYTASK')) WHERE STATE = 'SCHEDULED';

我做错什么了吗?让我知道是否有解决方案。在这种情况下,我只能在每月 1 日安排一次任务,并在第一次运行时运行所需的任务?这根本没有意义,因为典型的 linux 机器 cron 作业不会以这种方式运行。无法在线找到解决方案 - 因此,如果有人能对此有所了解,那将会很有帮助。

编辑:这里“不好”,因为当我运行上面的任务时,它不会显示任务是否已“计划”。很好,指出查询只能“返回过去 7 天内的任务活动或未来 8 天内的下一次计划执行”。

标签: snowflake-cloud-data-platform

解决方案


这与安排任务无关。如果您运行以下命令,您应该能够看到任务,并且它的状态将是“已启动”,这意味着它已被安排。

SHOW TASKS LIKE 'MYTASK';

这是关于 information_schema.task_history 函数的:

https://docs.snowflake.com/en/sql-reference/functions/task_history.html#usage-notes

此函数可以返回过去 7 天内运行的所有执行或接下来 8 天内的下一次计划执行


推荐阅读