heroku 在Streamlit自动执行计划任务

rqmkfv5c  于 2022-11-13  发布在  其他
关注(0)|答案(2)|浏览(194)

我目前在Heroku部署了一个应用程序,它使用Streamlit框架进行数据分析。但是页面打开非常慢,因为每次用户打开网站时,它都开始下载CSV数据。
所以,我的目标是原子化一个任务来下载CSV数据,使网站轻量级。有没有什么方法可以使用,例如,调度库到streamlit下载CSV数据每天?

xmakbtuz

xmakbtuz1#

我不认为有一个解决方案只使用Streamlit。
我遇到了同样的问题,并设法通过创建另一个脚本通过cron运行来修复它。
您的脚本:

# create a python script that will download the 
# csv data
# bear in mind, what I write is an example, 
# since it is a Python script, you can do whatever you want ;)

def create_csv():
    with open("/path/to/csv", "w") as f:
        f.write("a,b,c\n1,2,3")

if __name__ == "__main__":
    create_csv()

例如,您可以让此脚本每小时运行一次:

crontab -e

在打开的文件中:

0 * * * *  cd /path/to/script && python script.py

您可以在此处检查cron语法。

bwntbbo3

bwntbbo32#

这是一个老问题,但最后一个答案是相对较新的,所以...
我的解决方案是使用streamlit.cache
您可以在此documentation link中查看详细使用情况

相关问题