首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在本地测试sidekiq scheduler?

如何在本地测试sidekiq scheduler?
EN

Stack Overflow用户
提问于 2017-12-04 05:05:10
回答 3查看 1.9K关注 0票数 1

我正在尝试向我的rails应用程序添加几个计划的工作人员。这些工作者将在给定的间隔内爬行不同的站点。

我想测试这些工人,但做不到。我正在启动redis和我的应用程序。我应该怎么做才能查看我的计划作业是否正在工作?

下面是我的爬虫类:

代码语言:javascript
复制
class AyedasCrawler
include Sidekiq::Worker

我的sidekiq.yml是:

代码语言:javascript
复制
:schedule:
  ayedas_crawler:
    cron: '0 * * * * *'   # Runs once per minute
    class: AyedasCrawler
EN

回答 3

Stack Overflow用户

发布于 2018-08-01 22:29:59

通过从command-line.

  • sidekiq-scheduler中的应用程序根目录运行bundle exec sidekiqsidekiq,sidekiq

  • 启动Sidekiq工作器和调度程序进程。Sidekiq web界面提供了添加重复作业页面的扩展。有两种方法可以做到这一点:

代码语言:javascript
复制
1. In your routes.rb file, just below the `require 'sidekiq/web'`, add `require 'sidekiq-scheduler/web'`
2. In your config.ru, just below the `require 'sidekiq/web'`, add

require 'sidekiq-scheduler/web' run Sidekiq::Web

在浏览器上,转到==> http://localhost:{port}/sidekiq/recurring-jobs。其中{port}是运行应用程序的端口。

您将看到应用程序的计划作业列表以及有关该应用程序的其他一些详细信息。

在官方documentation中阅读更多内容

票数 1
EN

Stack Overflow用户

发布于 2018-07-20 20:51:36

您还需要运行Sidekiq进程。

bundle exec sidekiq

它将同时启动工作进程和调度程序

票数 0
EN

Stack Overflow用户

发布于 2021-05-13 16:49:38

如果您希望使用rspec对其进行测试,您可以执行以下操作:

代码语言:javascript
复制
it 'spawns scheduled workers' do
  Sidekiq::Cron::Job.load_from_hash YAML.load_file('config/sidekiq.yml')[: schedule]
  Sidekiq::Cron::Job.all.each(&:enque!)
  expect(AyedasCrawler.jobs.size).to be(1)
end

它加载YAML配置,将所有作业排入队列,并断言作业是否已被查询。

使用此方法,您可以验证您的计划YAML是否正确。它将测试NOT CRON语法和预定的时间间隔。

我还使用https://github.com/philostler/rspec-sidekiq来允许在没有实际执行作业的情况下进行sidekiq测试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47623296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档