- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用两个测功机(网络和工作人员)。 web 使用 flask 应用程序处理请求。 worker 运行基本的 python 代码,每 5 分钟输出一个 .csv 文件。这个文件非常小(<1MB)。flask 应用程序应该读取这个 .csv 文件,它是服务请求所必需的。问题是:最有效的方法是什么?据我了解,测功机是相互隔离的。其次,heroku 有一个临时文件系统(这对我的应用程序来说没问题),因为 .csv 文件不需要在重启之间持续存在。他们也不需要备份。工作人员写出的 .csv 文件在 ls
中不可见输出(在执行 heroku run bash
之后)。这很可能是因为 web 和 worker 是相互隔离的。在网上花了一些时间研究选项后,我认为有三个选项:
(1) 使用 AWS S3:这是事件文件的好选择吗?这些文件应该以高频率写入和读取 - S3 对我的应用程序来说不会很慢。其次,我想从 python 代码中编写(并读回)。我不确定如何使用 S3 执行此操作。 S3 似乎是您的应用程序需要的静态文件的存储。
(2) Postgres:worker 和 web 共享这个存储吗?可以为此编写一个 .csv 文件还是必须是 SQL ?
(3) Redis:这个我不明白。它是使用队列在测功机之间进行通信的东西。可以用来传递数据吗?
只有当请求来自前端时,我的 flask 应用程序才必须读取文件。不确定 Reddis 队列如何帮助解决这个问题。
谢谢。
最佳答案
redis 当然有很好的排队功能。但它的核心是一个远程字典服务,因此得名。
您的 worker 可以 PUT
该 csv 文件到 redis 中,您的网络测功机可以检索它。
r.set('csv', serialized_data);
把它放在那里,并且
serialized_data = r.get('csv');
把它拿回来。 'csv' 是 redis 键。在 heroku redis 服务的范围内,您可以拥有任意数量的 key (更多 key 、更多数据、更高成本)。
get()
每次需要时获取数据。它总是会得到最新的数据(除非工作人员在启动时第一次没有把它放在那里)。除非您的负载非常高,否则无需在您的网络测功机中进行精心缓存。
关于python - 如何在 Heroku(使用 python)上的 web 和 worker(不同的 dynos)之间通信数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64436428/
我正在尝试了解我的应用指标的 Dyno Load 部分。我的特定应用程序有五个 worker 测功机。根据这些信息,如果我看到 Load Max 或 Load Avg 为 2 或 2.5,那么我应该没
我正在尝试了解我的应用指标的 Dyno Load 部分。我的特定应用程序有五个 worker 测功机。根据这些信息,如果我看到 Load Max 或 Load Avg 为 2 或 2.5,那么我应该没
当管理员询问时,我的 Heroku 工作人员生成了一份报告,压缩为约 10MB 的 ZIP 文件。 生成大约需要一分钟,所以它是由delayed_job完成的。 . 生成完成后,将文件存储在何处以便
我很好奇 Heroku 上的 Web 和 Worker dynos 之间有什么区别。他们在定价页面上给出了一句话解释,但这让我很困惑。我怎么知道每个选择多少个?我应该达到一个比率吗?我对这个东西还很陌
在运行 Unicorn worker 的 Heroku Rails 4.2 Web 应用程序中,每个 worker 需要大约 230MB,我们可以为每个“1X”Heroku dyno 运行 2 个,或
我正在尝试设置一些 actor,并且好奇如何将 Actor 与 Play 捆绑在一起。我看到那个 Play !已经与 Actors 捆绑在一起,但它需要完整的应用程序上下文。这意味着要部署参与者,我还
显然两者都有相同的硬件规范。 “更快的构建”和“预启动”功能(仅在标准 dynos 上可用)似乎只对部署有影响。 至于一般性能,假设 Hobby 和 Standard-1X dynos 性能相同是否正
我在 Heroku 上有一个 Python Flask 应用程序,它提供网页服务,但也允许启动某些任务,我认为这些任务最好构造为后台任务。因此,我关注了 Heroku rq tutorial设置后台任
我最近在我的heroku应用程序中添加了“Heroku Scheduler”插件。 我目前有一个免费的heroku帐户,并且具有标准的一个Web dyno...。 现在,我已经设置了计划的注释以与Sc
Heroku 允许您动态添加和删除 dynos 和工作人员,并按每秒钟使用的费用向您收费。是否可以设置我的应用程序,以便它可以通过某种heroku api根据它所承受的负载从自身添加/删除dynos和
我知道 Heroku 每天自动重启一次 dynos。它们是否每天大约在同一时间重新启动?或者从他们第一次开始就只有 24 小时? 最佳答案 大约,但不一定精确,启动后 24 小时。 此外,如果需要重新
我们正在使用 heroku 的日志排水管将我们的日志聚合到纸迹中。一切都很好,除了我不确定如何从一次性 dynos 设置日志记录,我们用它来运行脚本。 我认为排放配置将适用于一次性 dynos,但我没
我的 Heroku 应用程序有一个 dyno,它访问外部资源,例如数据库\缓存\web-services\等? dyno IP 地址不是静态的,可能会更改,但不会经常更改。当您对这些资源进行维护时,了
我想重新启动 nodejs 应用程序以更改其 ip。我将如何在应用程序本身内执行此操作?我试过强制崩溃,但是如果应用程序在十分钟内崩溃两次,那么 heroku 将在第一次崩溃十分钟后重新启动测功机。
我正在使用 Socket.io 开发一个 node.js 应用程序,并将其部署在 Heroku Dyno 上。 Socket.io 正在使用 RedisStore 及其 PUB/SUB。 Socket
我正在尝试在 this guide 之后获取 Heroku 上的 dyno 元数据在 Google Cloud Shell 上,但它不显示 dyno 元数据。 当我输入以下命令时: heroku la
我在 Heroku 网站上读到,dynos 将每 24 小时重新启动一次。 例如,如果您有两个 web-dynos,它们是否有可能同时重新启动? 谢谢你的时间! 最佳答案 Heroku 随机重启 dy
Heroku 描述了他们的 dynos here它列出了每个人拥有的内存量以及计算资源的数量。我在任何地方都没有看到“计算”的定义。 当我在 performance-l dynos 上运行这个命令时,
是否可以在 Heroku 上为 Clojure webapp 设置作业队列?我看到你可以做延迟工作并为 Rails 和 Django 使用 celery ,Clojure 有什么类似的吗? 最佳答案
我对 Heroku Dyno 小时感到困惑。我了解您每月免费获得 550 dyno 小时的免费帐户。但是我们可以为 Hobby 帐户获得多少 dyno 小时? 有人可以清除这种困惑吗? 最佳答案 使用
我是一名优秀的程序员,十分优秀!