【发布时间】:2015-12-21 04:51:25
【问题描述】:
我猜this question 在 Rails 4 中很常见,但我的情况不同。
我正在使用 Sidekiq 来延迟创建工作;认为这是可能的,因为使用简单的数据,它是有效的。通过简单的数据:
def perform
Foo.create(bar: "staff")
end
这是我有问题的数据:
supports_controller.rb:
def create
params = support_params // seems to be issues here?
DelayedJobs.perform_in(1.minutes, current_user.id, params)
...
end
private
def support_params
params.require(:support).permit(:foo1, :foo2, :foo3)
end
app/workers/delayed_jobs.rb:
class DelayedJobs
include Sidekiq::Worker
def perform(user_id, params)
u = User.find(user_id)
support = u.supports.build(params)
Support.create(support) // create and save to db
end
end
通过网络(localhost:3000/sidekiq/scheduled,我看到了详细信息。很好。但是一分钟后它会因错误而重试。对此有帮助吗?
编辑:
在 sidekiq 网络参数中:
40, {"foo1"=>"a", "foo2"=>"b", "foo3"=>"c"}
为什么user_id(40)在外面?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 sidekiq