问题标签 [devise-async]

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 回答
1042 浏览

ruby-on-rails - 使用 devise-async 发送电子邮件不起作用(Rails/Sidekiq)

我有sidekiq (2.15.2),devise (3.2.0)并且devise-async (0.9.0)在我的 Rails 应用程序中。

我正在尝试devise-async接管发送电子邮件。但没有运气。我已按照以下说明进行操作:

添加:asyncUser模型:

创建一个初始化器:

我没有在我的邮件中进行任何自定义修改

以下是创建新帐户时控制台中显示的内容:

我的 Sidekiq 日志没有显示任何内容。

有任何想法吗?

0 投票
2 回答
871 浏览

ruby-on-rails-4 - 如何使用 Sidekiq 测试 Devise Async?

提前致谢!Sidekiq 工作得很好,但我无法使用 Devise Async 对其进行测试,或者我应该说我无法测试后者?

根据 Sidekiq 的文档,当测试模式设置为 fake! 时,分配给工作人员的任何工作都会被推送到以该工作人员命名的数组jobs中。所以测试这个数组的增加是微不足道的。

但是,使用 Devise Async,它并不是那么简单,尽管它的后端包括Sidekiq::Worker. 这是我尝试测试的一小部分内容:

  • Devise::Async::Backend::Sidekiq.jobs
  • Devise::Mailer.deliveries
  • ActionMailer::Base.deliveries
  • Devise::Async::Backend::Worker.jobs

这些测试对象都没有指出尺寸增加。由于 Devise 将其电子邮件作为模型回调发送,因此我尝试在模型和控制器规范中进行测试。使用 Factory Girl 和 Database Cleaner,我还尝试了两种模式:事务和截断。不用说,我也尝试了 Sidekiq 的两种模式:假的!和内联!

我错过了什么?

0 投票
1 回答
2487 浏览

ruby-on-rails - 使用 Rails 4 和设计的活动作业

我正在尝试使用 Rails 4 和 Devise 设置活动作业。我愿意接受任何教程,如果有的话(无法通过我的搜索找到。)

我知道有一个Devise Async gem,但它没有涵盖其中的 Active Job。也就是说,我发现这个 gem处于开发阶段,但我遇到了一个uninitialized constant Devise::Async::Backend::Base (NameError)错误。(可能是我在实施它时很轻松)。

欢迎任何建议。我希望我不必创建新的控制器方法。

0 投票
1 回答
68 浏览

ruby-on-rails-3 - 未通过 devise_async gem 和 resque 收到设计通知电子邮件

我正在使用带有 resque 的 devise_async gem 在后台发送电子邮件通知。

我所做的是 - 安装 devise_async 和 resque gem。

在初始化程序中添加 devise_async.rb 并带有行 -

在用户模型中添加了 :async 。

当用户注册时,通知电子邮件会在后台启动,但不会在 gmail 上收到。

0 投票
2 回答
1210 浏览

ruby-on-rails-4 - Sidekiq + 设计具有多个子域的邮件程序

我在我的一个项目的运行时更改 ActionMailer::Base.default_url_options = {:host => host} 时遇到问题。

设置:我有多个子域,它们在后端使用相同的 Rails-Application。我想通过 Sidekiq 队列将我的设计邮件发送给用户。设计邮件(确认、重置密码)包含链接,这些链接需要特定的子域才能正确。

我的环境

我的 application_controller 中有一个 before_action

现在,如果我想重置我的密码,我总是会得到我在环境文件中指定的默认 url 选项。如果我从我的环境中删除 default_url_options,我会在我的 sidekiq 日志中得到默认的设计错误。

主机始终在控制器中正确设置。我已经调试过了。似乎主机没有传递给sidekiq ..知道如何解决这个问题吗?

我无法将子域保存在某处,因为用户可以触发来自不同子域的电子邮件,并且并不总是相同。我需要一种方法来告诉 Devise 应该使用哪个主机来发送特定的电子邮件。我可以覆盖设计邮件并传递主机或类似的东西吗?

在我的情况下,以下解决方案是不可能的: 使用 sidekiq 时 Rails action mailer 中的动态域名

顺便说一句:包含设计、设计异步和 sidekiq 的完整工作流程本身可以工作(在开发、登台和生产中)。只有链接的主机不正确->这是我的大问题:-)..

0 投票
2 回答
1270 浏览

ruby-on-rails - 设计异步无法与 sidekiq 一起使用(使用 Devise Mailer 发送电子邮件)

我正在尝试使用 Devise::Mailer 一次发送多封电子邮件。使用 Devise Async,我想将这些电子邮件排队,而不是通过完全发送它们来减慢整个系统的速度(这可能会使应用程序延迟大约 20 秒)。主要问题似乎是 devise_async gem 似乎根本没有与 sidekiq 通信(我在 sidekiq 日志中看不到任何内容)。

经过大量挖掘,与我所拥有的和 devise_async wiki 中的主要区别在于 devise_async.rb 文件缺少参数(不幸的是,这仍然不能解决问题)。

编辑

问题可能是我没有 sidekiq 工作人员——尽管 devise_async 文档没有谈到这一点。我是否需要触发将触发 UserMailer 的 sidekiq 工作人员?我的印象是 UserMailer 本身就是一个工人。

设计异步.rb

sidekiq.yml

设计.rb

用户.rb

user_mailer.rb

0 投票
0 回答
152 浏览

ruby-on-rails - 管理员创建用户,用户选择他们的密码设计 gem

如何做到这一点:使用 Device Gem Rails

管理员将创建一个用户,然后用户收到电子邮件,

用户打开电子邮件并更新密码和他的个人信息。然后他登录了他的仪表板

0 投票
1 回答
469 浏览

devise - 使用 Mandrill 邮件程序设计异步错误数量的参数(1 比 2)

我正在使用delayed_job 来处理后台作业。我最近遇到了 devse_async gem 来集成delayed_job 和设计。

当delayed_job 处理队列中的电子邮件作业时,我收到错误数量的参数(1 对2)错误。我应该注意我正在使用 Mandrill 的 API 来发送这些电子邮件。

延迟作业控制台

痕迹

设计邮件程序

注册控制器.rb

0 投票
1 回答
385 浏览

ruby-on-rails - 设计异步和延迟作业不使用延迟作业发送电子邮件(rails 4)

我正在尝试使用devise_async. 但是,邮件程序不发送它们;它们只会保存在延迟工作表中。我devise-async一步一步地遵循了文档:

设计异步.rb:

应用程序.rb

还添加:asyncuser.rb

任何帮助表示赞赏。谢谢!

0 投票
1 回答
154 浏览

ruby-on-rails - 只有在用户被重定向后,如何在控制器中运行邮件程序?

例如,如果邮件程序send_signup_mail很重并且需要一段时间才能完成,我如何才能sign_in_and_redirect先执行并在视图呈现后在后台发送邮件。

在下面的代码中,这只需要以线性顺序执行,但我认为这不是实际发生的事情,因为重定向直到邮件发送后才会完成。

谢谢!