我正在努力使Resque与我的项目一起工作,但不幸的是,似乎由于某些原因Resque无法在Redis上编写.
Redis似乎配置正确,我能够连接redis-cli并发出命令,在我的Rails 3.0.5应用程序中配置的端口6379上运行.当我尝试将Resque排队等待作业排队时,但似乎并没有在Redis上实际发生某些事情(在我的Redis日志中连接的0个客户端).当我重新启动控制台时,队列为空,没有工作人员在运行.
一切都失败了,我的rails日志中没有任何内容,控制台上什么都没有,如果我启动一个工作人员,没有任何东西,它(显然)没有找到任何工作要执行.
https://gist.github.com/867620
有关如何修复或调试此问题的任何建议?
我的模型(RoR 3.0.x)中的代码或多或少是这样的:
class Message
after_create :notify
protected
def notify
if visible?
Notifier.message_from_portfolio( user, self ).deliver
else
Notifier.invisible_message_from_portfolio( user, self ).deliver
end
end
end
Run Code Online (Sandbox Code Playgroud)
我正在使用最新的rspec gem来测试它.问题是我无法测试通知方法:如果我直接测试它我不能因为它受到保护,如果我创建一条消息并设置期望它不起作用,因为很明显即使rspec运行通知metod我无法及时赶上电话.
我的规格是:
describe :notification do
it "should send the whole message by email when visible" do
u = Factory.create( :user, :account_type => 1 )
message = u.messages.build( :body => "Whatever", :author => "Nobody", :email => "test@example.com" )
Notifier.should_receive( :message_from_portfolio )
message.save
end
end
Run Code Online (Sandbox Code Playgroud)
对象通知程序永远不会收到message_from_portfolio.我究竟做错了什么?建议?
我在无服务器框架字上使用serverless-kms-secrets来设置一些我想使用Ruby使用的ENV变量。
我可以确认该插件运行正常,它使用加密变量生成了文件,并且可以在我的环境中在AWS lambda上看到该加密变量。问题是我无法在Ruby中解密它。在插件中(正确)解密它的代码在这里,我知道它获取保存在文件中的字符串并使用Base64对其进行编码,因此没什么大不了的。在Ruby中:
token = "blablabla"
client = Aws::KMS::Client.new(region: 'us-east-1')
blob = Base64.encode64(token)
client.decrypt({ciphertext_blob: blob})
....
Aws::KMS::Errors::InvalidCiphertextException ()
Run Code Online (Sandbox Code Playgroud)
客户端应该自动获取我的凭据,但是我不确定我是否了解keyArn的使用方式,尽管看起来并不相关。
有谁知道如何解决这个问题?
我正在使用rswag来测试一个相当常见的 RubyOnRails JSON Api应用程序,但我无法找出将文件上传到端点的相当常见的情况。
端点需要data请求正文中的常用属性以及file包含二进制文件的属性,并且我无法使 rswag 生成具有正确参数的请求。
path '/documents' do
post 'Creates a document' do
tags 'Documents'
consumes 'multipart/form-data'
produces 'application/vnd.api+json'
parameter name: 'data',
description: 'Whatever',
attributes: {
schema: {
type: :object,
properties: {
file: { type: :binary },
},
},
}
response '201', 'success' do
let(:data) do
{
attributes: {
file: Rack::Test::UploadedFile.new($REALARGS),
},
}
end
schema "$ref": '#/definitions/post_document_responses/201'
run_test! do |_example|
# ACTUAL TEST
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
还有一些其他更简单的参数(例如授权)已正确生成,然后我确信rswag已正确挂钩。我看到的请求没有参数,我可以删除data …