gpt4 book ai didi

python - Heroku 时钟进程不将数据存储到 CSV 文件

转载 作者:太空宇宙 更新时间:2023-11-03 21:06:29 25 4
gpt4 key购买 nike

我正在使用 Heroku 制作一个网页,每天从其他页面抓取一些内容,然后将其显示在页面上。我遇到的问题是,当运行日常 Clock.py 文件时,会执行抓取过程,但根本不存储新的 CSV 文件。您认为造成这种情况的原因是什么?

为了提供更多信息,抓取功能会打开一个网页,抓取一些内容并返回一个 pandas 数据帧。我现在想要实现的目标是将此数据帧存储到名为 df_result2.csv 的文件夹 data/ 中。简短的评论:抓取过程完美运行,因为我可以在每次运行后将数据帧打印到控制台。唯一的问题来自于存储该文件。您对我应该更改什么有什么建议吗?

#clock.py
from apscheduler.schedulers.blocking import BlockingScheduler
import datetime
import pandas as pd

from components import scraper

sched = BlockingScheduler()

#Example for a job
@sched.scheduled_job('interval', minutes=3)
def timed_job():
print('This job is run every 3 minutes.')
result = scraper()
pd.DataFrame.to_csv(result, "data/df_result2.csv")
print(result)

最佳答案

最直接的问题可能是 data/ 目录不存在。

但是更大的问题是 Heroku 的文件系统 is ephemeral 。每当您的测功机重新启动时,您对其所做的任何更改都将丢失。这种情况经常发生且不可预测 ( at least once per day )。

由于您每三分钟生成一次数据,因此风险在一定程度上是有限的,但有时当您需要该文件时,该文件可能不存在。

我强烈建议您使用正确的data store,而不是将数据存储在文件系统上。 。 PostgreSQL 与 Heroku 配合得很好。如果您确实想使用文件,请考虑 storing it on a third-party service like Amazon S3 .

关于python - Heroku 时钟进程不将数据存储到 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55367324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com