问题标签 [wisper]

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 投票
1 回答
192 浏览

ruby-on-rails - 将 wisper(pubsub 库)与 Devise 一起使用

我试图弄清楚如何将wisper与 Devise 一起使用。

注册新用户帐户后,我想为该用户创建一些示例数据。

所以在我的用户模型中,我会有:

我的听众会是这样的:

但我不知道如何将其与设计联系起来。如何配置SampleDataCreator监听来自 Devise 用户模型的事件?

更新

我尝试在设计注册控制器中附加监听器,如下所示:

但似乎听众永远不会被触发。

更新 2

我意识到上述方法不起作用,因为在调用 yield 之前保存了记录。在此之前挂钩到 Devise 似乎很棘手,所以我覆盖了整个方法:

这现在有效,虽然它不是很优雅。

更新 3

我找到了一个更简单的方法,我可以加入build_resource

0 投票
1 回答
1259 浏览

ruby-on-rails - Wisper:订阅者没有收听广播

在之前的问题中,有人建议我使用名为 Wisper 的 gem。我很高兴了解它,因为它正是我正在寻找的解决方案。我从 Wisper 的文档中无法理解的是听众如何注册自己。

这是我的代码:

应用程序/模型/订阅.rb

应用程序/模型/offer.rb

所以我不完全确定这里的这部分。我尝试了各种订阅技术,但我认为归结为我并没有真正理解它的这一方面:

配置/初始化程序/wisper.rb

我也尝试过,类似于 Wiki 中的示例:

我在这里想念什么?(我不确定上面的代码是否应该放在初始化程序中。)

0 投票
1 回答
3433 浏览

ruby-on-rails - 在每次请求时自动重新加载 wisper 侦听器

我在 app/listeners 目录中有 wisper 监听器。

我也有 /config/initializers/wisper.rb

我可以以某种方式强制 Rails 在每次请求时重新加载侦听器吗?

0 投票
2 回答
533 浏览

ruby-on-rails - 不通过 wisper-sidekiq 启动队列

我正在尝试用wisper-sidekiq gem 做一个小例子。队列已创建,但未启动。为什么?我将描述您正在执行的步骤,我认为这会更容易。我希望能得到你的帮助。

A.控制器:

B、服务:

C. 听众:

当我保存这本书时,当然会创建一个队列。但:

  • sidekiq 静默(日志为空,但已创建队列)
  • redis 也沉默

也许我错了启动redis(redis-server)或sidekiq(bundle exec sidekiq)?请帮我。

PS尝试bundle exec sidekiq -d -e production sidekiq -q default -C config/sidekiq.yml,但没有结果。sidekiq.rb空。

0 投票
1 回答
127 浏览

activerecord - 如何将 Wisper 与相同 Active Record 模型的不同实例一起使用?

我正在尝试将 Wisper 与 Rails 4 / AR 一起使用并遇到问题。

假设我有EmailARCreep模型,我想Creep知道何时收到回复(Creep不一定是发件人......)

所以我这样做:

如果立即这样做:

它会起作用(Creep实例有一个成功的方法)。

但是,如果我以后这样做:

或者:

该事件不广播。我猜这是因为新电子邮件是一个不同的实例,因此没有订阅的听众。我究竟做错了什么?

0 投票
1 回答
1023 浏览

ruby-on-rails - rails wisper 正在测试中

我有一个项目使用 wisper https://github.com/krisleech/wisper来提供发布者和订阅者功能。

gem 在开发和生产模式下完美运行。但是,当我尝试为它们添加一些测试时(rake test:integration),新添加的测试拒绝工作。测试模式下的发布者(可能也是监听者)不再工作了。

Core::Request.subscribe(Listener::Studentlistener, async: true) Core::Request.subscribe(Listener::Tutorlistener, async: true)

我使用 sidekiq 作为异步后端,我使用 wisper-sidekiq gem 来处理异步请求,不确定这是否会是问题?,puma 作为服务器, MRI ruby​​ 2.0.0

我是否必须设置一些东西才能运行测试?

侦听器应接收这两个帖子之间的发布并将状态更新为“匹配”。但是,现在当我运行 rspec 时,测试失败了,因为发布者从不发布任何内容,因此状态没有正确更新。

0 投票
1 回答
426 浏览

ruby - Wisper 和 Grape 从 POST 请求返回结果

我有一个简单的 POST Grape 端点,在后台使用 Wisper pub/sub:

这是SomeSub实际发生计算的地方:

SomePub也很简单:

所以我需要的是{result: "42"}在调用葡萄的post :now端点时用 JSON 响应。

不幸的是,它不能以这种方式工作,而我所拥有的是:

Wisper wiki 中的那个例子并没有太大帮助(https://github.com/krisleech/wisper/wiki/Grape

SomePub#do_calculations由于葡萄的端点调用,任何想法如何实际传递结果?

0 投票
1 回答
1522 浏览

ruby-on-rails - rails-observers vs wisper gem

使用wispergem over有什么好处rails-observers吗?

乍一看,它们看起来非常相似,但 wisper 似乎更受社区的支持(基于 GH 星、提交和发布)。它们之间有什么显着差异吗?

0 投票
1 回答
348 浏览

ruby-on-rails - Rails spring wisper监听器方法缓存

事实证明,Spring 缓存了我的 wisper 侦听器方法(我正在编写非常简单的引擎)。

例子:

应用程序/模型/myengine/my_class.rb

配置/初始化程序/wisper.rb

app/observers/myengine/my_observer.rb

通过春季重启,我的意思是手动执行spring stop命令,这真的很烦人。

更神秘的是,我可能会将another_method返回值更改为 false,然后测试失败,这没关系,但是当我更改after_something方法主体以说它return false对测试没有任何影响时(就像以after_something某种方式缓存的主体)。

这不是高优先级问题,因为这种奇怪的行为仅在侦听器方法体内可见,并且通过将所有逻辑移动到类中的另一个方法很容易克服。无论如何,它可能会令人困惑(尤其是在我不知道确切问题的开始时)。

0 投票
1 回答
666 浏览

ruby-on-rails - Rails Wisper 跳过侦听器回调

我使用 Rails Wisper gem,我想仅在特定测试期间(我测试电子邮件发送)执行侦听器回调(发送电子邮件)。在其他测试中,我不想发送电子邮件,即使在生产中我的回调会发送它们。

Wisper可以吗?

发布者 (app/models/order.rb)

侦听器/观察者(app/observers/mailer_order_observer.rb)

订阅(config/initializers/wisper.rb)

测试(spec/observers/mailer_order_observer_spec.rb)

在上面的测试中,我想执行MailerOrderObserver order_after_save回调,但不是在任何其他测试中(创建了许多“订单”并更改了通常会触发电子邮件发送的内容)。

我使用 RSpec 作为测试框架和 FactoryGirl。

当然Order,使用 FactoryGirl 创建新实例会触发邮件,这也是不希望的。