Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails-异步任务、分叉流程、最佳实践_Ruby On Rails_Ruby_Rubygems - Fatal编程技术网

Ruby on rails Rails-异步任务、分叉流程、最佳实践

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

我在课堂上使用观察者。当其中一个记录被创建/更新时,我需要通过URL调用通知另一个服务。这样做的最好方法是什么,以避免减慢我的课程?使用gem-u作业会不会太过分


在my Observer的after_update/after_create中,我只想启动一个调用URL的线程…

如果您的通知程序是非线程阻塞的,您可以简单地生成一个线程并在那里执行通知。这样,当线程等待响应时,程序将继续运行

当然,你需要一些方法来处理失败。您可以让它尝试三次,如果仍然失败,则向日志或其他内容写入通知


最可靠的解决方案是使用作业队列。这样,如果作业完全失败,您可以检查并再次提交作业。

如果通知程序是非线程阻塞的,您可以简单地生成一个线程并在那里执行通知。这样,当线程等待响应时,程序将继续运行

当然,你需要一些方法来处理失败。您可以让它尝试三次,如果仍然失败,则向日志或其他内容写入通知


最可靠的解决方案是使用作业队列。这样,如果作业彻底失败,您可以再次检查并重新提交作业。

一定要使用社区支持/接受的gem,如delayed\u job或resque。这真的没有你想象的那么难,你的应用程序会更好地向下扩展。

一定要使用社区支持/接受的gem,比如延迟工作或重新创建。这真的没有你想象的那么难,你的应用程序会更好地向下扩展