Last active
May 6, 2020 02:14
-
-
Save acotie/be8e6dfe2aee9c7778a1bdfc3867e08a to your computer and use it in GitHub Desktop.
eventmachine defer sample.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'bundler/setup' | |
require 'eventmachine' | |
require 'open-uri' | |
EM.run do | |
puts "main: #{Thread.current}" | |
operation = proc { | |
puts "defer operation: #{Thread.current}" | |
sleep(20) | |
open('http://google.co.jp/').status | |
//raise "errrrrrooooooorrrrrr" ## raise error | |
} | |
callback = proc {|result| | |
puts '--- callback # ------------------------------------------------------------------------------' | |
puts "defer callback: #{result}" | |
puts "defer callback: #{Thread.current}" | |
EM.stop | |
} | |
errorback = proc {|error| | |
puts '--- error # ------------------------------------------------------------------------------' | |
#puts "defer error: #{error}" | |
puts "defer error: #{error}" | |
puts "defer error: #{Thread.current}" | |
EM.stop | |
} | |
puts '--- calling defer' | |
EM.defer(operation, callback, errorback) | |
puts '--- called defer' | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
main: #<Thread:0x007ffe3a8bc3c0> | |
--- calling defer | |
--- called defer | |
defer operation: #<Thread:0x007ffe3b136cd0> | |
--- callback # ------------------------------------------------------------------------------ | |
defer callback: ["200", "OK"] | |
defer callback: #<Thread:0x007ffe3a8bc3c0> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
main: #<Thread:0x007fb3e40bc3a0> | |
--- calling defer | |
--- called defer | |
defer operation: #<Thread:0x007fb3e427ae80> | |
--- error # ------------------------------------------------------------------------------ | |
defer error: errrrrrooooooorrrrrr | |
defer error: #<Thread:0x007fb3e40bc3a0> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment