mysql - SAS EG 中的程序延迟启动
问题描述
目前我每天早上都在运行一个程序,因为我正在开发它,所以我可以使用今天的数据我的问题是它确实需要一些时间来运行。我想知道是否有人知道我可以编写一些代码,这样当我单击运行时,它会等到特定时间开始。目前我正在考虑在顶部添加一个循环来尝试这样做:
例如
%macro delay();
data _null_;
if %sysdate() >= 8:00 then %put Start;
else %delay();
run;
%mend;
原谅伪劣代码编写,在没有 SAS 的情况下这样做。此外,我不想使用任何 SQL 服务器,如 T-SQL。
无论如何,制作本质上的无限循环是否有害?
解决方案
WAKEUP() 函数可以使您的 SAS 会话休眠到指定时间。还有一个 SLEEP() 函数。WAKEUP() 接受日期时间或时间。从文档:
在日期时间唤醒:
data _null_;
slept=wakeup('01JAN2004:13:00:00'dt);
run;
一次唤醒:
data _null_;
slept=wakeup("22:00:00"t);
run;
这应该比无限循环使用更少的 CPU 资源。
推荐阅读
- hive - Hive的字段列表中有关键字时如何指定字段?
- python - 使用 argparse 获取整数列表,如 0-10,而不使用 Python 中的任何额外库
- overlay - RPI 4 上的 GPOI-Fan 引脚是否默认打开?如果是这样,我该如何禁用它?
- html - 在 Angular Spring Boot 应用程序中添加搜索按钮
- r - 关于 ggplot2 中的非有限值和缺失值的警告?
- node.js - 在 Electron 应用程序中将自定义模块导入 renderer.js
- python - 如何迭代多个正则表达式匹配并替换它们?
- tags - 到中心的 Gif 链接
- javascript - 为什么我在这里得到类型对象错误上的属性不存在?
- xml - 如何在 xpath 中获取 position() 和 level()?