0

我有一个延迟作业,它使用 aws/s3 处理一堆 S3 对象。它通过“rake jobs:work”在本地工作,但在 Heroku 上失败并出现以下错误:

“{Job 加载失败:未初始化的常量 Net::HTTP::ConnectionPool...”

我还可以通过“heroku run console”启动 Heroku 控制台并运行作业的方法而不会出现问题。ConnectionPool 来自 aws,所以我试图强制 require 'aws/s3' 但它没有帮助。有任何想法吗?

宝石:aws-sdk(1.5.6)rails(3.1.0)delayed_job(3.0.3)

4

1 回答 1

0

事实证明,我正在重用来自模块的 s3 连接。如果存在,该模块将返回一个现有连接,如果不存在,它会创建一个新连接。我不确定为什么它在我当地的 DJ 中有效,而不是在 Heroku Worker 上有效,因为我认为在这两种环境中都不应该存在现有的连接,并且在这两种情况下,这项工作都是通过 rake 任务开始的,就像工人。无论如何,在作业中通过 AWS::S3.new 创建新的 S3 连接后,问题就解决了。

希望这可以帮助某人。

于 2012-07-17T12:55:54.287 回答