More Related Content
PDF
PDF
Hyperlapse for Azure Media Servicesを本気で使ってみた PDF
組込みシステムでIoTへの扉を開こう! mruby on LEGO Mindstorms EV3 (R) PPTX
PPTX
All Your Mistake Are Belong To Us PPTX
PDF
the Lingo project (Esper2010 LT) PPTX
Lang-8 got updated on SimpleResource Similar to Async Programming on Ruby
PDF
PPTX
KEY
PDF
FFRKを支えるWebアプリケーションフレームワークの技術 PPT
PPT
PPTX
PDF
言語は違うけどもインスパイアされて作られたとあるライブラリ(PaperclipとLaravel-stapler) PPTX
KEY
PDF
PDF
PPTX
CQRS+ESをAkka Persistenceを使って実装してみる。 PDF
PDF
Apache Kafka on Herokuを活用したイベント駆動アーキテクチャの設計と実装 PPTX
PDF
GitHubで見つかるFileMaker関連ソフトウェア PDF
PDF
Rubyで創るOpenFlowネットワーク - LLまつり PDF
Async Programming on Ruby
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
Crampdefmain res = {} joint = AsyncJobsJoint.newjoint.callback = Proc.new{ self.respond(res) } ticket4memcache = joint.take_ticket@@cache ||= EM::P::Memcache.connect'localhost', 11211@@cache.get(someKey.to_sym){|item| res[:memcache_response] = item if itemjoint.return_ticket ticket4memcache } ticket4gearman = joint.take_ticketgearman = EM::P::Gearman.connect‘localhost', 7003 task = gearman.create_task(‘someJob’, someInput)task.on_complete{|item|gearman.close_connection_after_writing res[:gearman_response] = itemjoint.return_ticket ticket4gearman }task.on_fail {gearman.close_connection_after_writingjoint.return_ticket ticket4gearman }task.queue! ticket4db = joint.take_ticketUser.where(User[:id].eq(params[:user_id])).first {|user| res[:db_response] = userjoint.return_ticket ticket4db }end全体終了後のコールバックを登録Memcached, Gearman, MySQLの3者に、“同時並行的に”データを取りに行き、AsyncJobsJoint(後述)で待ち合わせている。 - 12.
- 13.
- 14.