【问题标题】:An http request in a custom validator in RailsRails 自定义验证器中的 http 请求
【发布时间】:2017-06-28 09:23:04
【问题描述】:

我有一个自定义的 ActiveRecord 验证器,它应该执行网络/http 请求作为验证检查之一。它是否这样做,取决于传递给它的参数。当它这样做时,请求可能会失败,需要很长时间,远程服务器可能会关闭,等等......

因此它应该异步发送。并且用户可能不应该等待它完成。因为如果服务器宕机,用户需要等待多长时间?

同时,我的验证器是强制性的,只要它正在被验证,模型就不能保存在数据库中。

因此,我将如何实施呢?在 ActiveRecord 中同步验证。

【问题讨论】:

    标签: ruby-on-rails ruby validation activerecord


    【解决方案1】:

    理想情况下,您应该保持异步。您将不得不重新考虑用户的整个流程。

    我的建议是使用排队系统。让用户保存他/她的帐户并向他们显示他们的帐户正在等待验证并将通过电子邮件通知他们的消息。

    同时,将数据推送到队列中,将队列中的记录一一处理(即向服务器发出请求)并进行验证。根据验证激活或停用帐户并向用户发送电子邮件。

    【讨论】:

    • 为什么是队列而不是sidekiq之类的?
    • 如果我没记错的话,Sidekiq 在内部也使用队列。你可以用它来解决你的目的
    • @Kona:“queue”和“sidekiq”有什么区别?
    猜你喜欢
    • 1970-01-01
    • 2017-05-30
    • 1970-01-01
    • 2020-07-28
    • 2018-05-31
    • 1970-01-01
    • 2017-11-17
    • 1970-01-01
    • 2011-11-17
    相关资源
    最近更新 更多