Heroku can上的Scrapyd';无法识别heroku buildpack pgbouncer重写的数据库URL

Heroku can上的Scrapyd';无法识别heroku buildpack pgbouncer重写的数据库URL,heroku,scrapy,twisted,scrapyd,pgbouncer,Heroku,Scrapy,Twisted,Scrapyd,Pgbouncer,好的,这是我的设置。我在Heroku上使用scrapy Heroku包运行scrapyd守护程序 我遇到数据库连接不足的问题。我决定尝试使用pgbouncer来共享数据库连接。我正在使用这个构建包: 我的文件是: 网址:scrapyd 我把它改成: 网址:bin/start pgbouncer stunnel scrapyd buildpack应该在初始化时重写数据库的URL,这样无论运行什么子进程,都可以正常使用数据库的URL,但现在将连接到pgbouncer,而不是直接连接到数据库 在scr

好的,这是我的设置。我在Heroku上使用scrapy Heroku包运行scrapyd守护程序

我遇到数据库连接不足的问题。我决定尝试使用pgbouncer来共享数据库连接。我正在使用这个构建包:

我的文件是: 网址:scrapyd

我把它改成: 网址:bin/start pgbouncer stunnel scrapyd

buildpack应该在初始化时重写数据库的URL,这样无论运行什么子进程,都可以正常使用数据库的URL,但现在将连接到pgbouncer,而不是直接连接到数据库

在scrapy中,我使用adbapi为每个蜘蛛创建一个池,如下所示:

def from_settings(cls, settings):
    dbargs = dict(
        host=settings['MYSQL_HOST'],
        database=settings['MYSQL_DBNAME'],
        user=settings['MYSQL_USER'],
        password=settings['MYSQL_PASSWD'],
        #charset='utf8',
        #use_unicode=True,
    )
    dbpool = adbapi.ConnectionPool('psycopg2', cp_max=2, cp_min=1, **dbargs)
    return cls(dbpool)
在我的设置中,这是我获取数据库URL信息的方式:

import urlparse
urlparse.uses_netloc.append("postgres")
url = urlparse.urlparse(os.environ["DATABASE_URL"])
MYSQL_HOST = url.hostname
MYSQL_DBNAME = url.path[1:]
MYSQL_USER = url.username
MYSQL_PASSWD = url.password
在我添加pgbouncer buildpack之前,它工作得很好。现在我发现了连接错误:

Traceback (most recent call last):
  File "/app/.heroku/python/lib/python2.7/site-packages/twisted/internet/defer.py", line 150, in maybeDeferred
    result = f(*args, **kw)
  File "/app/.heroku/python/lib/python2.7/site-packages/scrapy/xlib/pydispatch/robustapply.py", line 57, in robustApply
    return receiver(*arguments, **named)
  File "/tmp/etc/etc/etc/middlewares.py", line 92, in spider_opened
  File "/app/.heroku/python/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect
    conn = _connect(dsn, connection_factory=connection_factory, async=async)
OperationalError: could not connect to server: Connection refused
    Is the server running on host "127.0.0.1" and accepting
    TCP/IP connections on port 5432?
有人知道问题是什么吗