问题标签 [rspec-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 投票
2 回答
4844 浏览

ruby-on-rails - 如何使用 RSpec 测试 Sidekiq 工作人员?

我正在使用 RSPEC 进行测试,并将 Sidekiq 用于后台作业。

因为,workersrspec 中没有生成器,所以不知道该使用什么。

https://relishapp.com/rspec/rspec-rails/docs/generators

bundle exec rspec spec/workers/test_worker_spec.rb

像下面这样,我得到:uninitialized constant TestWorker 需要'spec_helper'

正如我所尝试的,gem rspec-sidekiq https://github.com/philostler/rspec-sidekiq

app/workers/有人可以提供用于在 Rspec 中进行测试的示例模板吗?

谢谢。

0 投票
1 回答
379 浏览

ruby-on-rails - 如何检查异常块中的代码?

我有 Sidekiq 工人。

我写了规范,但是当我尝试测试时出现错误Rails.looger

运行此规范后,我收到错误消息。但为什么?

测试这两条线有什么意义吗?

0 投票
1 回答
482 浏览

ruby-on-rails - Sidekiq with Heroku & Rails : 我的工作卡在 Heroku 的队列中

解决方案编辑:

Heroku 上的 worker 按钮没有从 Off 变成 On...


我正在尝试在我的 RailsApp 上使用 Sidekiq。该配置在开发中运行良好,但在使用 Heroku 的产品中,所有作业都被排入队列但卡在队列中。

一些见解:

我已经在 Heroku 上完成了 Redis_to_go 的配置。

Sidekiq 仪表板 在此处输入图像描述

Heroku 作业日志

我所有的配置和代码: Procfile

应用程序.rb

注册控制器.rb

类 CreateMemberContactJob < ApplicationJob queue_as :默认

CreateMemberContactJob

请帮助我,我已经通过了所有 SO 帖子和 Sidekiq wifi 以及 Medium 帖子和圣书,但我没有弄清楚。

非常感谢

0 投票
0 回答
2259 浏览

ruby-on-rails - 如何在 RSPEC 中测试或存根 Sidekiq::Batch?

如何在RSPEC中测试或存根Sidekiq::Batch

请参阅下面的代码中出现错误

rails_helper

待测试的工人...

规范/工人/test_worker_spec.rb

0 投票
0 回答
92 浏览

ruby-on-rails - 当我使用 sidekiq 时,ActionMailer::Base.deliveries 给出了空白数组?我们需要为此做任何配置吗

当我使用 sidekiq 时,ActionMailer::Base.deliveries 给出了空白数组?我们需要为此做任何配置吗

我的 test.rb 看起来像这样在开发模式下它工作正常,即使从 test sidekiq 也没有显示错误。

0 投票
0 回答
256 浏览

ruby-on-rails - 导轨;安装 Sidekiq 后的自动加载问题:ArgumentError(Api::V1 的副本已从模块树中删除,但仍处于活动状态!):

我有一个正在开发的 rails (v5.1) 项目,我最近在其中安装了 Sidekiq。我现在有一个自动加载问题,得到主题参数错误。

我做了相当多的研究,这似乎归结为“试图从一个没有自动重新加载(在 lib 目录中)的类中访问自动重新加载的类(在 app 目录中)”的问题,并且当重新加载代码时,Rails 会抛出一个错误,因为常量搜索开始的模块不应该存在,而是存在。在我的例子中,Rails 似乎试图在“api/v1”下自动加载控制器。此处主要参考。

显然,当自动加载试图在不同的线程中加载相同的常量时,当在另一个线程中加载常量时,问题也可能与线程有关。我已经读过这个问题可以通过“require”或“require_dependency”来处理,以确保在Rails尝试自动加载代码之前加载代码,但我还没有弄清楚在自动加载之前我可以在哪里需要控制器。有什么见解吗?

我似乎找不到文件命名约定的问题,这似乎是导致此错误的原因之一。我试过把“::”放在不同的地方,但无济于事。我可以在 development.rb 中设置“config.eager_load:true”以无错误地运行代码,但这会留下其他问题。

********* 更新 *********

我尝试将 /config/puma.rb 中的线程池大小从 5 更改为 1,然后 ArgumentError 消失了。这表明上述和本文中描述的线程问题而不是非自动加载的常量中的自动加载常量。我几乎得出结论,Sidekiq 由于线程而与 Rails 自动加载不兼容,但有谁知道如何处理这个问题?

配置/puma.rb

********* 更新 *********

我的 lib 目录中的内容可能是问题所在吗?如果是这样,我该如何解决这个问题?

我的应用程序在 lib 目录中只有一个文件用于响应程序 gem,application_responder.rb,它引用了 ActionController。这个参考可能有问题吗?文件内容如下:

/lib/application_responder.rb

application_controller.rb 文件引用响应者如下:

/app/controllers/application_controller.rb

错误日志:

0 投票
0 回答
326 浏览

ruby-on-rails - 使用 rspec-sidekiq 测试 sidekiq 工作者不起作用

这是我的测试代码:

这就是我得到的结果

澄清一下,我after_save在模型中有一个回调,Cookie它以这种方式调用工人:

CookCookieWorker.perform_in(5.seconds, id)

一开始我以为我可能无法以这种方式测试工人,可能模型回调没有效果?但是我尝试在测试中手动调用工人:

但我得到相同的结果,测试失败。任何想法?

0 投票
1 回答
690 浏览

ruby - Rspec 如何测试 Sidekiq 作业是否计划在特定时间运行

我有以下工人

在我的 rspec 测试中,我有以下内容job_blasting_worker_spec.erb

我希望这能奏效,但我意识到应该安排在接下来的 2 分钟内的 sidekiq 作业永远不会被创建。因此,测试失败。

我如何确保 sidekiq 作业在接下来的 2 分钟内实际创建并且测试成功运行?

0 投票
1 回答
249 浏览

ruby-on-rails - 期望 Sidekiq 作业接收带有参数 Rspec 的异步

我有以下工人

我也有以下job_blasting_service

并且在scoring_worker

现在我想编写一个 rspec 测试来验证发送到的参数ScoringWorker是否准确。

我有这个 rspec 测试,当我运行它时,我收到一个错误,因为它没有任何带有参数的 sidekiq 作业。

我怎样才能为它编写这个测试以获得所需的响应

0 投票
0 回答
25 浏览

ruby-on-rails - 使用 ActiveJob 为 sidekiq 作业手动设置当前执行/重试次数

我已经在我的工作上实现了重试次数相关的逻辑。例如,当一个作业第一次失败时,我使用额外的参数重新启动它,以处理之前作业执行可能不正确的“清理”。

如何使用特定的执行编号运行 sidekiq 作业(通过 ActiveJob 或手动)

这与添加sidekiq_options :retry => 5作业的类定义不同。

我需要类似的东西

语法是什么,或者是否有解释如何执行此操作的文档?

这将证明是有用的

  • 用于 RSpec 测试
  • 对于在控制台中手动重试一些有问题的作业并直接查看 stdout /interact