【问题标题】:Delayed start of a program in SAS EGSAS EG 中的程序延迟启动
【发布时间】:2018-07-30 19:28:38
【问题描述】:

目前我每天早上都在运行一个程序,因为我正在开发它,所以我可以使用今天的数据我的问题是它确实需要一些时间来运行。我想知道是否有人知道我可以编写一些代码,这样当我单击运行时它会等到特定时间开始。目前我正在考虑在顶部添加一个循环来尝试这样做:

例如

%macro delay();
    data _null_;
         if %sysdate() >= 8:00 then %put Start;
         else %delay();
    run;
%mend;

请原谅伪劣代码编写,在没有 SAS 的情况下这样做。 另外,我不想使用任何 SQL 服务器,例如 T-SQL。

无论如何制作一个本质上的无限循环是否有害?

【问题讨论】:

    标签: mysql sql sas sas-macro


    【解决方案1】:

    WAKEUP() 函数可以使您的 SAS 会话休眠到指定时间。还有一个 SLEEP() 函数。 WAKEUP() 接受日期时间或时间。来自文档:

    在某个日期时间唤醒:

    data _null_;
       slept=wakeup('01JAN2004:13:00:00'dt);
    run;
    

    一次唤醒:

    data _null_;
       slept=wakeup("22:00:00"t);
    run;
    

    这应该比无限循环使用更少的 CPU 资源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-27
      • 1970-01-01
      • 2019-02-21
      • 2021-12-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-22
      • 1970-01-01
      相关资源
      最近更新 更多