在rails中引入类似触发器功能的最佳实践



我想在rails应用程序中引入触发器。我所说的触发器是指,如果某个事件发生,自动执行一些操作。例如,可以定义触发器,以便在下订单时发送电子邮件通知。

有很多应用程序已经提供了这种功能,例如,请参阅本文关于触发器及其工作方式。

我的问题是,在rails中实现触发器的最佳实践是什么?内联与异步处理哪个更好?

任何形式的帮助都将不胜感激。谢谢

您想要的是Rails中的ActiveJob。

当要应用触发器时,您将首先将作业排入队列->然后通过Worker中的Job执行此触发器。

例如:假设您想在创建帖子后立即通知管理员,那么您将执行以下操作:

class Post < ApplicationRecord
...
after_create :notify_admin
...
private
def notify_admin
NotifyAdminJob.perform_later(id)
end
end

这样,无论NotifyAdminJob中的代码多么复杂或依赖时间,都不会对模型执行(创建/更新(产生任何影响

最新更新