问题标签 [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.
ruby-on-rails - 将 wisper(pubsub 库)与 Devise 一起使用
我试图弄清楚如何将wisper与 Devise 一起使用。
注册新用户帐户后,我想为该用户创建一些示例数据。
所以在我的用户模型中,我会有:
我的听众会是这样的:
但我不知道如何将其与设计联系起来。如何配置SampleDataCreator
监听来自 Devise 用户模型的事件?
更新
我尝试在设计注册控制器中附加监听器,如下所示:
但似乎听众永远不会被触发。
更新 2
我意识到上述方法不起作用,因为在调用 yield 之前保存了记录。在此之前挂钩到 Devise 似乎很棘手,所以我覆盖了整个方法:
这现在有效,虽然它不是很优雅。
更新 3
我找到了一个更简单的方法,我可以加入build_resource
:
ruby-on-rails - Wisper:订阅者没有收听广播
在之前的问题中,有人建议我使用名为 Wisper 的 gem。我很高兴了解它,因为它正是我正在寻找的解决方案。我从 Wisper 的文档中无法理解的是听众如何注册自己。
这是我的代码:
应用程序/模型/订阅.rb
应用程序/模型/offer.rb
所以我不完全确定这里的这部分。我尝试了各种订阅技术,但我认为归结为我并没有真正理解它的这一方面:
配置/初始化程序/wisper.rb
我也尝试过,类似于 Wiki 中的示例:
我在这里想念什么?(我不确定上面的代码是否应该放在初始化程序中。)
ruby-on-rails - 在每次请求时自动重新加载 wisper 侦听器
我在 app/listeners 目录中有 wisper 监听器。
我也有 /config/initializers/wisper.rb
我可以以某种方式强制 Rails 在每次请求时重新加载侦听器吗?
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为空。
activerecord - 如何将 Wisper 与相同 Active Record 模型的不同实例一起使用?
我正在尝试将 Wisper 与 Rails 4 / AR 一起使用并遇到问题。
假设我有Email
ARCreep
模型,我想Creep
知道何时收到回复(Creep
不一定是发件人......)
所以我这样做:
如果立即这样做:
它会起作用(Creep
实例有一个成功的方法)。
但是,如果我以后这样做:
或者:
该事件不广播。我猜这是因为新电子邮件是一个不同的实例,因此没有订阅的听众。我究竟做错了什么?
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 时,测试失败了,因为发布者从不发布任何内容,因此状态没有正确更新。
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
由于葡萄的端点调用,任何想法如何实际传递结果?
ruby-on-rails - rails-observers vs wisper gem
使用wisper
gem over有什么好处rails-observers
吗?
乍一看,它们看起来非常相似,但 wisper 似乎更受社区的支持(基于 GH 星、提交和发布)。它们之间有什么显着差异吗?
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
某种方式缓存的主体)。
这不是高优先级问题,因为这种奇怪的行为仅在侦听器方法体内可见,并且通过将所有逻辑移动到类中的另一个方法很容易克服。无论如何,它可能会令人困惑(尤其是在我不知道确切问题的开始时)。
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 创建新实例会触发邮件,这也是不希望的。