问题标签 [sidekiq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
8115 浏览

ruby-on-rails-3 - Monit Ruby on Rails Sidekiq

我正在尝试为 Sidekiq 设置 Monit。这是我到目前为止的配置文件:

问题是当我运行 monit reload 程序“捆绑”不存在时,我收到一条消息。

有人对此有解决方案吗?

0 投票
3 回答
2891 浏览

ruby-on-rails-3 - 通过 sidekiq 和 devise-async 发送后台邮件,队列已满但邮件未处理

我目前正在构建一个 Rails 平台,并且我已经使用设计进行身份验证,现在想使用 sidekiq 将默认设计电子邮件移动到后台进程中。我为此使用了 devise-async 并完成了以下操作:

添加了 devise_async.rb 文件:

在设计模型中添加了 async 命令:

宝石的版本如下:

我遇到的问题是电子邮件在 sidekiq 队列中传递,但工作人员从不执行发送电子邮件。我也看过devise async not working with sidekiq,他似乎也有同样的问题。但我认为我对 hostname 命令没有问题。

对这个问题有什么想法吗?

0 投票
1 回答
587 浏览

ruby-on-rails - 如何将此 ActiveRecord::Observer 转换为 Service 对象?

如何将以下 ActiveRecord::Observer 转换为 Service 对象(或者可能是多个对象)?

通过PushServiceWebSocket 更新所有连接的浏览器的所有更改。它通过 POST 到外部进程来做到这一点。自从迁移Thread.new到 Sidekiq 后,观察者就破产了。在 :after_create 中启动的 Sidekiq 作业可以在事务实际提交之前运行,因此它会引发 ActiveRecord::NotFound 错误。

建议使用 :after_commit 钩子,但是这样所需的信息PushServicerecord.changes不可用。

这个观察者实现的有趣用例是,当创建一条新消息时,它是对另一条消息的回复。它将自动运行两个回调。一个 :after_create 用于回复消息,一个 :after_touch 用于线程消息。

我有兴趣了解如何通过使用显式服务对象来运行此行为。

0 投票
1 回答
320 浏览

ruby-on-rails - Sidekiq 在运行时创建队列

我开始将 Sidekiq 用于一个小项目。

我想知道是否可以在运行时创建队列并启动它。

当我使用类似的东西时

队列已创建,但我找不到启动它的方法。

0 投票
7 回答
35167 浏览

ruby-on-rails - Rails:在 Heroku 上启动 Sidekiq

我在 Heroku 部署的 Rails 应用程序上启动并运行 Sidekiq 时遇到问题。我的应用程序在开发中运行良好(以及在没有 Sidekiq 的 Heroku 上)。

我创建了一个 Procfile:

如果我运行heroku ps,我看到的唯一进程是web.1.

我应该为 Sidekiq 看一个吗?

我确实收到一个错误:

Redis::CannotConnectError (Error connecting to Redis on localhost:6379)在我的 Heroku 日志中。

更新:发现我可能需要heroku addons:add redistogo. 还是行不通。我觉得我缺少一些基本配置。

我需要做些什么来让 Redis 为我的 Heroku 应用程序启动并运行吗?

我已经使用 Redis/Sidekiq 大约一天了,所以这对我来说是新的。

谢谢!

格雷格

0 投票
2 回答
8438 浏览

ruby-on-rails - 如何让 Sidekiq 工作人员在 Heroku 上运行

我已经用我的 Rails 项目设置了 Sidekiq。它与 Unicorn 在 Heroku 上运行。我已经完成了所有配置步骤,包括设置正确的 REDISTOGO_URL (正如这个问题所引用的那样),我在 unicorn.rb 的 after_fork 中添加了以下内容:

我的Procfile如下:

现在我打电话给我的工作人员 perform_async 并将任务添加到队列中。事实上,在我的 Sidekiq Web 界面中,它显示队列中有 7 个项目,并且其中包含所有数据。然而,没有工作人员处理队列,对于我的生活,我无法弄清楚为什么。如果我跑

我得到以下输出:

有人知道这里发生了什么吗?

更新

这是我的工人阶级的代码。是的,我知道 Oj gem 可能与 sidekiq 存在一些问题,但我想我会先试一试。此时我没有收到任何错误消息(工作人员甚至没有运行)。

0 投票
2 回答
1146 浏览

ruby-on-rails - 将 Resque 队列转换为 SideKiq

我正在尝试将 Resque 队列转换为 Sidekiq。我已经完成了 Sidekiq 的整个设置,现在准备将我所有的 resque 作业添加到 sidekiq 的作业中。

我的问题是:我可以简单地将redis中的所有resque键重命名为相应的sidekiq键吗?

例如,如果我有一个名为“twitter”的队列,resque 的 redis 键是“resque:queue:twitter”,但 sidekiq 中的键是“queue:twitter”。我可以简单地将“resque:queue:twitter”重命名为“queue:twitter”吗?

0 投票
2 回答
1958 浏览

ruby - Heroku、Nokogiri 和 Sidekiq 内存泄漏 - 如何调试?

我刚刚切换到在 Heroku 上使用 Sidekiq,但在我的工作运行一段时间后,我得到了以下信息:

它一直这样增长。

对于这些工作,我使用 Nokogiri 和 HTTParty 来检索 URL 并解析它们。我尝试过更改一些代码,但我实际上并不确定我首先要寻找什么。我应该如何调试这个?

我尝试将 New Relic 添加到我的应用程序中,但不幸的是它还不支持 Sidekiq。

此外,在谷歌搜索之后,我试图切换到 SAX 解析器并查看它是否有效,但我被卡住了。这是我到目前为止所做的:

然后我尝试类似:

然后,我尝试对使用 HTTParty 检索到的数据使用以下方法,但无法使这些方法中的任何一个正常工作:

更新

我发现解析器不起作用,因为我正在调用parser.parse(page)而不是parser.parse(page.body) 但是我尝试使用上述脚本打印出各种网站的所有 html 标签,对于某些网站它打印出所有标签,而对于其他网站它只打印出几个标签。

如果我使用它Nokogiri::HTML()代替parser.parse()它工作正常。

我使用Nokogiri::XML::SAX::Parser.new()而不是Nokogiri::HTML::SAX::Parser.new()HTML 文档,这就是我遇到麻烦的原因。

代码更新

好的,我现在可以使用以下代码,但不知道如何将我得到的数据放入一个数组中,以便以后使用...

0 投票
2 回答
304 浏览

cloud-foundry - Cloudfoundry 上的 Sidekiq Workers

我已阅读有关 Cloud Foundry 上的后台任务的可用文档。但这对如何将 sidekiq 部署到 cloudfoundry 没有帮助?

我怎么跑, bundle exec sidekiq

0 投票
2 回答
1347 浏览

ruby-on-rails-3 - Rails 在控制器外部调用 redirect_to(或渲染)

这似乎是一个微不足道的问题,但我似乎无法在任何地方找到答案(这可能是因为 Rails 对我正在做的事情不满意)。

我正在使用 Sidekiq 来处理后台任务(例如图像处理、上传等),其中一个完成了我想将当前页面重定向到另一个页面,或者甚至更好地渲染出部分。

我当前在 perform 方法中的代码如下所示:

所以,我尝试了几种方法来做到这一点,例如:

我什至尝试过这种可怕的黑客攻击:

entry_controller.rb

工人.rb

我究竟做错了什么?

参考资料(我查过的东西): 在处理错误验证时,何时使用 render 与 redirect_to

https://gist.github.com/1210155

http://railsforum.com/viewtopic.php?id=16885