Ruby on rails Rails-异步任务、分叉流程、最佳实践
我在课堂上使用观察者。当其中一个记录被创建/更新时,我需要通过URL调用通知另一个服务。这样做的最好方法是什么,以避免减慢我的课程?使用gem-u作业会不会太过分Ruby on rails Rails-异步任务、分叉流程、最佳实践,ruby-on-rails,ruby,rubygems,Ruby On Rails,Ruby,Rubygems,我在课堂上使用观察者。当其中一个记录被创建/更新时,我需要通过URL调用通知另一个服务。这样做的最好方法是什么,以避免减慢我的课程?使用gem-u作业会不会太过分 在my Observer的after_update/after_create中,我只想启动一个调用URL的线程…如果您的通知程序是非线程阻塞的,您可以简单地生成一个线程并在那里执行通知。这样,当线程等待响应时,程序将继续运行 当然,你需要一些方法来处理失败。您可以让它尝试三次,如果仍然失败,则向日志或其他内容写入通知 最可靠的解决方案
在my Observer的after_update/after_create中,我只想启动一个调用URL的线程…如果您的通知程序是非线程阻塞的,您可以简单地生成一个线程并在那里执行通知。这样,当线程等待响应时,程序将继续运行 当然,你需要一些方法来处理失败。您可以让它尝试三次,如果仍然失败,则向日志或其他内容写入通知
最可靠的解决方案是使用作业队列。这样,如果作业完全失败,您可以检查并再次提交作业。如果通知程序是非线程阻塞的,您可以简单地生成一个线程并在那里执行通知。这样,当线程等待响应时,程序将继续运行 当然,你需要一些方法来处理失败。您可以让它尝试三次,如果仍然失败,则向日志或其他内容写入通知
最可靠的解决方案是使用作业队列。这样,如果作业彻底失败,您可以再次检查并重新提交作业。一定要使用社区支持/接受的gem,如delayed\u job或resque。这真的没有你想象的那么难,你的应用程序会更好地向下扩展。一定要使用社区支持/接受的gem,比如延迟工作或重新创建。这真的没有你想象的那么难,你的应用程序会更好地向下扩展