如何定期自动运行Jupyter Notebook单元

时间:2018-08-05 08:27:17

标签: python sql-server jupyter-notebook data-visualization plotly

我想将我的jupyter笔记本与我的网站集成在一起,在那儿我编写了代码来从MySQL服务器获取实时数据并使用plotly进行实时可视化。但是每次我必须运行内核的所有单元时。有什么方法可以使Jupyter笔记本电脑定期每天1小时自动运行?

3 个答案:

答案 0 :(得分:1)

我的建议是

  • Setup具有所需周期的cron作业。
  • 使用runipy 运行笔记本中的所有单元。它有很多功能 例如将运行另存为html报告。特别是 在您希望可视化绘图的情况下很有用。

我可以在此处提供命令,但是它们非常简单,可以从链接中轻松地找到它们。

答案 1 :(得分:0)

import time

# Wait for 3600 seconds
While True:
    time.sleep(3600 )
    #YOUR CODE HERE

如果您不想在运行模式下等待单元格,则可以在线程内运行上面的代码

答案 2 :(得分:0)

请使用Javascript setInterval函数设置一个运行时间为1小时的函数。在interval函数内部,您可以调用jupyter对象方法来运行所有单元格。

%%html
<script>
    // AUTORUN ALL CELLS ON NOTEBOOK-LOAD!
    require(
        ['base/js/namespace', 'jquery'], 
        function(jupyter, $) {
            $(jupyter.events).on("kernel_ready.Kernel", function () {
                setInterval(function(){
                  console.log("Auto-running all cells-below...");
                  jupyter.actions.call('jupyter-notebook:run-all-cells-below');
                  // jupyter.actions.call('jupyter-notebook:save-notebook');
                }, 60000); // 60000 for 1 hour interval gap
            });
        }
    );
</script>

注意:我自己添加了脚本的setInterval部分,主要代码来自此SO answer