【问题标题】:How to schedule Mathematica notebooks to run the same time every day?如何安排 Mathematica 笔记本每天在同一时间运行?
【发布时间】:2012-05-10 16:35:39
【问题描述】:

我必须每天运行一个笔记本(以获取数据仓库的数据)。目前我手动启动它。所以,在周末,我没有得到数据。这就是为什么我正在寻找一种每天自动运行笔记本的解决方案。

【问题讨论】:

  • 对于未来与 Mathematica 相关的问题,您可以考虑在Mathematica.SE 上提问。大多数与 Mathematica 相关的活动都移到了那里。

标签: wolfram-mathematica mathematical-optimization


【解决方案1】:

如果在类 UNIX 操作系统上,您可以将笔记本的内容转换为 Mathematica script 并使用 cron 安排它定期运行。

另一种不太推荐的方法是在 Mathematica 中进行调度。比如:

Do[
    If[
        MemberQ[{"Monday", ...}, DateString["DayName"]], 
        runMyProgram[]
    ]; 
    Pause[3600*24],
    {30}
]

【讨论】:

  • 在 Mathematica 中进行调度的正确方法是 CreateScheduledTask 对于版本 8。对于版本 7,有 very similar undocumented functionality
  • 我想试试 CreateScheduledTask 的方式?但是我对 Mathematica 几乎没有任何经验,所以每天运行笔记本的代码会是什么样子。谢谢
【解决方案2】:

如果您只需要运行 Mathematica 并编写输出,您可以使用以下过程并使用 Windows 计划任务(设置为“每日”)调用它。为了简单起见,指定了示例中的一些文件位置,即一个位于 Mathematica 目录本身中,但不一定要添加更多路径细节(取决于系统)。

mathematica start front end and eval notebook from command line

如果您的笔记本设计为交互式运行并将其内容保存在同一个笔记本中,您可以使用以下帖子中的方法,其中更简单的方法具有生成“未捕获的抛出”警告的无害副作用,(原因在帖子中有解释)。

Uncaught Throw generated by JLink or UseFrontEnd

【讨论】:

    猜你喜欢
    • 2016-11-24
    • 1970-01-01
    • 1970-01-01
    • 2022-06-23
    • 1970-01-01
    • 2022-01-24
    • 2018-11-13
    • 2021-08-17
    • 2015-05-09
    相关资源
    最近更新 更多