Ruby eventmachine pres at rubybdx

  • 702 views
Uploaded on

More infos on http://www.mathieu-elie.net/eventmachine-introduction-pres-rubybdx-screencast-fr …

More infos on http://www.mathieu-elie.net/eventmachine-introduction-pres-rubybdx-screencast-fr

Ruby Eventmachine is a really goop option to build scalable real time servers and more...

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
702
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
1
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. EVENTMACHINEfast, simple event-processing library for Ruby programs
  • 2. EventMachine Components• Reactor• Your code (callbacks)• Tread pool (non blocking long running tasks)
  • 3. Reactor• Main loop / Central point• Dispatch call to business code (your code)• Single threaded !
  • 4. Reactor• run-reactor.rb• EM.run block until its stopped• its not really blocking, the reactor pattern is running forever ;)
  • 5. Your code• Called by reactor• blocking ! (called by a single thread dispatcher aka reactor)
  • 6. Your code• each timer own a callback, like any code like network call etc....• a long running task will block the reactor
  • 7. Tread pool• Pool fixed size !• Dont block the reactor if you have a long running task• use the thread pool !
  • 8. Tread pool• EM.defer -> run the callback inside on thread on the pool thread• Reactor continue to dispatch to other code. nice !
  • 9. simple server• module implements callbacks: easy !• see the EventMachine.run -> launch the reactor• Inside reactor -> start server :)
  • 10. contact / more infos• http://www.mathieu-elie.net -> tech blog -> and all concact infos (github, linkedin, and so on...)• available for freelance• questions ? feel free to mail me :)