下午好我有两个独立但相关的应用程序。他们都应该有自己的后台队列(阅读:单独的Sidekiq和Redis进程)。但是,我希望偶尔能够将作业从app1推送到app2的队列。从简单的队列/推送角度来看,如果app1没有现有的Sidekiq/Redis堆栈,则很容易做到这一点:#Inaprocess,farfaraway#ConfigureclientSidekiq.configure_clientdo|config|config.redis={:url=>'redis://redis.example.com:7372/12',:namespace=>'mynamespace'}end#Pus
我知道sidekiq有一个push_bulk选项,但我目前受到redis延迟的限制,所以通过push_bulk传递多个项目仍然不够快(只有大约50/s)。我试过像这样增加redis连接的数量:redis_conn=proc{Redis.new({:url=>Rails.configuration.redis.url})}Sidekiq.configure_clientdo|config|Sidekiq.configure_clientdo|config|config.redis=ConnectionPool.new(size:50,&redis_conn)endconfig.clien
我想我遗漏了一些东西,因为我在文档中找不到如何为redis实例编写用户名和密码以与sidekiq一起使用..有没有办法做到这一点?还是通过ENV变量? 最佳答案 Sidekiq将无法识别的redis选项直接传递给Redis驱动程序:config.redis={password:'bar'}而redis没有用户的概念,只有密码。 关于ruby-on-rails-在sidekiq上配置redis身份验证,我们在StackOverflow上找到一个类似的问题: ht
在更新我的gem并将所有内容投入生产后,我在Heroku上启动sidekiq时遇到了很大的问题。问题是Sidekiq试图通过本地连接和端口连接到Redis,而不是使用REDISTOGO变量。花了几个小时后,我设法修复了它:下面的答案。 最佳答案 删除if和below中的所有内容并运行:herokuconfig:setREDIS_PROVIDER=REDISTOGO_URLSidekiq会自动使用它。 关于heroku-Heroku上的Redistogo和Sidekiq:Can'tconn
是否有可能以某种方式查看sidekiq完成的工作列表-例如,找到所有参数为(1)的PurchaseWorkers?昨天在我的应用程序中,本应运行的延迟方法没有运行,相关实体(比如说“购买”)陷入了状态“处理”的困境。我试图了解原因是什么:作业根本没有排队或已排队但由于某种原因意外退出。sidekiq日志中没有错误。谢谢。 最佳答案 这是旧的,但我想看同样的东西,因为我不确定我安排的作业是否运行了!事实证明,Sidekiq没有内置任何东西来查看已完成但似乎仍未完成的作业。如果它出错并且从未完成,它应该在“死”队列中。但是默认情况下,检
我不明白。根据Sidekiq文档,每个worker(我的称为FeedWorker)只能包含一个名为perform的方法。那么,如果我想通过同一个worker运行多个方法怎么办?例如,我的FeedWorker(您猜对了,它处理事件提要)应该运行以下3个方法:announce_fooannounce_barinvite_to_foo我不认为这是一个不合理的期望。我相信其他人已经考虑过这一点。我不是天才,但我知道我并没有在这里开辟新的期望。然而,目前尚不清楚如何做到这一点。现在,看起来我必须这样编码:defperform(id,TYPE)ifTYPE==BARBar.find(id)and_
我在我的应用程序中使用Redis,既用于Sidekiq队列,也用于模型缓存。考虑到将使用Redis的模型将从我的Web应用程序(通过Puma运行)和Sidekiq中的后台作业调用,让我的模型可以使用Redis连接的最佳方法是什么?我目前正在我的初始化程序中这样做:Redis.current=Redis.new(host:'localhost',port:6379)然后在整个代码中简单地使用Redis.current.get/Redis.current.set(和类似的)...据我所知,这应该是线程安全的,因为Redis客户端使用监视器一次只运行一个命令。现在,Sidekiq有自己的Re
可能的原因有哪些Sidekiq防止处理队列中的作业?队列已满。日志文件sidekiq.log表明根本没有事件。因此队列已满但日志为空,Sidekiq似乎没有处理项目。似乎没有worker处理工作。重新启动Redis或使用FLUSHALL刷新它或FLUSHDB因为没有效果。Sidekiq已经开始于bundleexecsidekiq-Llog/sidekiq.log并生成以下日志文件:2013-05-30..BootingSidekiq2.12.0usingredis://localhost:6379/0withoptions{}2013-05-30..Runninginruby1.9
我在我的Rails应用程序中使用sidekiq。默认情况下,任何人都可以通过在url后附加“/sidekiq”来访问Sidekiq。我只想用密码保护/验证sidekiq部分。我该怎么做? 最佳答案 将以下内容放入您的sidekiq初始化程序require'sidekiq'require'sidekiq/web'Sidekiq::Web.use(Rack::Auth::Basic)do|user,password|#Protectagainsttimingattacks:#-Seehttps://codahale.com/a-less
我正在尝试使用Rails运行sidekiqworker。当我尝试docker-composeupworker我收到以下错误:worker_1|ErrorconnectingtoRedison127.0.0.1:6379(Errno::ECONNREFUSED)worker_1|/home/app/Nyvur/vendor/bundle/ruby/2.2.0/gems/redis-3.2.2/lib/redis/client.rb:332:in`rescueinestablish_connection'worker_1|/home/app/Nyvur/vendor/bundle/ruby