如何解决Rails-延迟的工作-发送有关已删除对象的电子邮件
|| 我有一个问题,我正在使用DelayedJob通过对已删除对象的.delay方法调用来发送电子邮件。我有一个观察员,检查after_destroy,它启动了一封延迟的电子邮件,但是我收到了 Delayed :: DeserializationError 我知道我收到此错误,原因是找不到“记录”,但是有一种方法可以绕过它,只发送包含delay_jobs表中信息的电子邮件,而不在数据库中查找对象?任何帮助,将不胜感激。谢谢!解决方法
您需要做的就是将对象的各个部分包装到另一个对象中(在删除对象之前),然后在该对象上调用
.delay
:
notifier = WhatEver.new(self)
notifier.delay.send_email
在要破坏的东西的before_destroy
回调中包装类似的内容。 “ 3”类只是从对象中提取信息的相关位,将这些位存储在实例变量中,然后“ 4”根据所提取的信息构建并发送电子邮件。
用这种方式做事会破坏电子邮件和即将死掉的对象之间的联系,应避免使用“ 5”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。