gpt4 book ai didi

ruby - 在哪里/如何托管我的小型数据库驱动的 Sinatra 驱动的 Ruby 应用程序? Heroku 限制数据库连接

转载 作者:数据小太阳 更新时间:2023-10-29 08:51:21 28 4
gpt4 key购买 nike

这是我的应用程序:price inflation calculator .如果您单击“计算”,您可能会收到与服务器相关的错误。当我在 Sinatra 中测试该应用程序时,我收到一条错误消息:

PG::Error: FATAL: too many connections for role "********"

查了一下,原来是Heroku limits its free databases to 20 connections .

我想继续在 Heroku 上开发小型应用程序(尤其是数据库驱动的应用程序),但如果我无法绕过此限制,我可能无法做到。我愿意每月支付 50 美元来获得一个允许更多连接的数据库,但我还不知道这是否值得。

我的问题是:有谁知道是否可以免费绕过此限制,或者是否有 Heroku 的替代方案可以托管数据库驱动的 Sinatra 应用程序?

这是我用来将通货膨胀数据添加到数据库的代码:

require 'rubygems'
require 'rest-client'
require 'nokogiri'
require 'sequel'

### MAKE CPI DATABASE ###
db_name = 'DATABASE_NAME_HERE'
DB = Sequel.postgres(db_name,:user=>'USER_NAME',:password=>'PASSWORD',:host=>'HOST',:port=>5432,:sslmode=>'require')
DB.create_table! :cpi_nsa_annual do
primary_key :id
Integer :year
Float :cpi
end # DONE: DB.create_table :cpi_nsa_annual do
cpi_annual = DB[:cpi_nsa_annual]
### DONE MAKING CPI DATABASE ###

post_url = "http://data.bls.gov/pdq/SurveyOutputServlet"

post_params = {
'delimiter'=>'comma',
'output_format'=>'html',
'output_type'=>'column',
'periods_option'=>'all_periods',
'series_id'=>'CUUR0000SA0',
'years_option'=>'all_years'
}

if page = RestClient.post(post_url,post_params)
npage = Nokogiri::HTML(page)
data = npage.css('table.regular-data tbody tr')

data.each{|row|
month_prefix = (row.css('th')[2].text)[0]
year = row.css('th')[1].text
month = (row.css('th')[2].text)[1..2]
cpi = row.css('td').text

if month_prefix=='M' and month=='13'
cpi_annual.insert(
:year=>year,
:cpi=>cpi
) # DONE: cpi_annual_insert
p ["YEAR",year,cpi]
end # DONE: month_prefix=='M' and month!='13'
}
end # DONE: if page
p cpi_annual.each{|row| p row}

最佳答案

您似乎真的不需要数据库来完成您希望在该应用程序中完成的任务。不能将年费率存储在 ruby​​ 代码中的数组中吗?

$inflation_rates = {"1999" => 2.19, "2000" => 2.97, "2001" => 3.73}

或者我可能误解了您的应用的工作原理。

我已经在 Heroku 上毫无问题地托管了带有数据库的小型 Sinatra 应用程序。 20 个连接限制已经足够了。您确定这不是您的应用程序的错误吗?也许它使用了过多的连接?你能发布你的代码吗?

此外,OpenKeyVal是一个很棒的免费键/值数据存储,没有连接限制(唯一的限制是键必须小于 64KB)。它可能会迫使您更改代码,但至少值得研究一下。因为您可以使用 JSONP 调用存储数据,所以您可以构建一个在单个静态 html 文件中使用数据存储的应用。

关于ruby - 在哪里/如何托管我的小型数据库驱动的 Sinatra 驱动的 Ruby 应用程序? Heroku 限制数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12150653/

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