我有一个Sidekiq工作器,它将Rails 3.2应用程序的数据与远程数据库同步。当我从rails控制台执行它时,一切都按预期工作。我可以验证它是否连接到远程数据库并提取我期望的数据。
我尝试设置以下内容的那一刻:
recurrence {daily.hour_of_day(20).minute_of_hour(02)}
我在Sidekiq中看到以下内容,但没有完成/执行的迹象:
2014-05-14T00:02:18Z 6747 TID-dvc2c INFO: [Sidetiq] Enqueue: BackendWorker (at: 1400112120.0) (last: -1.0)
我目前已将重试设置为false(我想更改),并且我已尝试在再次设置另一个测试运行之前清除redis中的任何内容。
有没有办法可以获得更多有关正在发生的事情的信息?是否有Sidekiq标志我可以用来获取一些额外的调试信息?
提前致谢
环境:
更新(2014年5月14日):
我决定用Sidetiq测试一个简单的例子,并且只有一个工人用ActiveRecord创建一个DB条目:
class BackendTest
include Sidekiq::Worker
include Sidetiq::Schedulable
sidekiq_options :retry => false, :backtrace => true
recurrence {
daily.hour_of_day(11).minute_of_hour(05)
}
def perform
Book.create(title: "test", author: "testing", price: 9.99)
end
end
我做的另一个实验只是试图让Sidetiq和Sidekiq用logger.info显示一些东西:
class BackendTest
include Sidekiq::Worker
include Sidetiq::Schedulable
sidekiq_options :retry => false, :backtrace => true
recurrence {
daily.hour_of_day(16).minute_of_hour(00)
}
def perform
logger.info "test"
logger.info "test"
end
end
作业仍未进入默认队列而未启动或完成。如果我只是通过perform_async
,Sidekiq::Client.push
,Sidekiq::Client.enqueue
和2014-05-14T20:08:41Z 2149 TID-dfcfk BackendTest JID-6bc7ba08955f8340903f9063 INFO: start
2014-05-14T20:08:41Z 2149 TID-dfcfk BackendTest JID-6bc7ba08955f8340903f9063 INFO: test
2014-05-14T20:08:41Z 2149 TID-dfcfk BackendTest JID-6bc7ba08955f8340903f9063 INFO: test
2014-05-14T20:08:41Z 2149 TID-dfcfk BackendTest JID-6bc7ba08955f8340903f9063 INFO: done: 0.002 sec
仍可在控制台上运行,那么一切仍然有效。
此时我是一个彻底困惑的新手。
输出:
{{1}}
答案 0 :(得分:2)
在github上讨论其他人的项目之后,我看到了一些有趣的东西并尝试了它,它似乎解决了我对Sidetiq的问题。
我创建了/config/initializers/sidekiq.rb
,其中包含以下内容:
Sidekiq.configure_server do |config|
config.redis = { :url => 'redis://localhost:6379/3', :namespace => 'sidekiq' }
end
Sidekiq.configure_client do |config|
config.redis = { :url => 'redis://localhost:6379/3', :namespace => 'sidekiq' }
end
作业任务按预期排队并执行。