【发布时间】:2018-02-21 12:14:16
【问题描述】:
假设我有一些内部业务逻辑来确定需要发送什么邮件。
这个业务逻辑的输出是一个Hash,格式如下-
{ mailer_class: SomeMailer, mailer_method: "foo_email" }
{ mailer_class: OtherMailer, mailer_method: "bar_email" }
# etc...
我需要根据上面的信息调用适当的邮件程序,所以我尝试使用 Sidekiq 内置的类似方法 delay -
data = { mailer_class: ..., mailer_method: "..." }
data[:mailer_class].delay.send(mailer[:method])
这导致 Sidekiq 排队 send 方法,最终将在我的邮件程序上调用。
从功能上讲,它可能会正常工作,因为该类毕竟会收到适当的方法。但它感觉有点脏,它会中断观察sidekiq队列的其他进程,因为他们希望看到一个邮件方法名称,但却找到:send。
有没有解决这个问题的好方法,或者我是否坚持修改我的应用程序逻辑的其余部分来处理这个问题?
谢谢!
【问题讨论】:
标签: actionmailer sidekiq