Your SlideShare is downloading. ×
TorqueBox - Ruby na sterydach
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

TorqueBox - Ruby na sterydach

878
views

Published on

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
878
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
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. TorqueBox Ruby na sterydach
  • 2. Marek.
  • 3. +=
  • 4. TorqueBox to klejpomiędzy JRuby aserwerem aplikacji JBoss AS.
  • 5. JRuby.
  • 6. Prawdziwe wątki.
  • 7. Bardzo szybkie środowisko.
  • 8. Biblioteki Javy.
  • 9. JBoss AS.
  • 10. Serwer aplikacji Java EE (klastrowanie, web,wiadomości, cache, etc)
  • 11. Cel.
  • 12. PierwszorzędnyRails / Sinatra / Rack
  • 13. Drugorzędny Usługi / Zadania /Wiadomości / Transakcje /Cache / WebSockets / HA
  • 14. Web.
  • 15. Sinatramyapp/ config.ru myapp.rb torquebox.yml
  • 16. myapp/ config/ torquebox.yml Rails application.rb ... app/ views/ controllers/ models/ ...
  • 17. Poka poka.
  • 18. Nuda.
  • 19. Usługi.
  • 20. Gdy wykonujemy coś w tle przezstart() jakiś czas, np....czas mija... pobieranie danych z Twitterastop()
  • 21. class MyService def initialize(opts) end def start end def stop endend app/services/my_service.rb
  • 22. services: MyService: config: foo: bar abc: 1 MySingletonService: singleton: true config/torquebox.yml
  • 23. singleton: true Jedna aktywna usługa wjednym czasie w klastrze.
  • 24. singleton: false Usługi aktywne nawszystkich węzłachklastra (domyślnie).
  • 25. Zadania.
  • 26. Gdy wykonujemy coś co jakiś czas.Co piątekW pierwszy dzień miesiącaCo 2 minutyNo, wiesz o co chodzi.
  • 27. class MyJob def run endend app/jobs/my_job.rb
  • 28. jobs: newsletter: job: MyJob cron: ‘0 0 0 1 * ?’ singleton: true cache_cleaner: job: CacheCleanerJob cron: ‘5 * * * * ?’ config/torquebox.yml
  • 29. Wiadomości.
  • 30. JMS.
  • 31. queues: /queues/foo: /queues/bar:topics: /topics/foo: /topics/bar: config/torquebox.yml
  • 32. Wysyłamy...class MyController < ApplicationControllerinclude TorqueBox::Injectors def index queue = inject(‘/queues/foo’) queue.publish(“Lecimy!”) endend app/controllers/ my_controller.rb
  • 33. ...i odbieramyinclude TorqueBox::Messagingclass MyProcessor < MessageProcessor def initialize(opts) end def on_message(body) # body == “Lecimy!” endend app/processors/ my_processor.rb
  • 34. messaging: /queues/foo: MyProcessor: filter: "language = ruby" concurrency: 3 config: foo: bar config/torquebox.yml
  • 35. Transakcje.
  • 36. Kolejka TematKod Cache Baza danych
  • 37. Dystrybuowane. (trudne słowo)Sukces tylko wtedy gdywszystko się powiedzie.
  • 38. Transakcje w AR?TorqueBox.transaction do User.create(:username => Kotori) TorqueBox.transaction do User.create(:username => Nemu) raise ActiveRecord::Rollback endend
  • 39. Transakcje gdziekolwiek?TorqueBox.transaction do inject(/queues/foo).publish("blah")end
  • 40. Cache.
  • 41. Infinispan.Data Grid. Replikowalna,dystrybuowalna pamięć.
  • 42. Zamiast memcached.
  • 43. cache = TorqueBoxStore.new( :name => ‘foo’, :mode => :replicated)cache.put(...)cache.get(...)
  • 44. Wstrzykiwanie zasobów.
  • 45. UsługiKolejki / tematyJava CDI
  • 46. inject(‘/queues/foo’).publish(...)inject(‘/topics/bar’).publish(...)
  • 47. CDIpackage com.acme.blah;@ApplicationScopedpublic class MyBean { public void fire() { ... }}
  • 48. bean = inject(com.acme.blah.MyBean)bean.fire
  • 49. Klastrowanie.
  • 50. JBoss AS ma wbudowanewspacie dla klastrowania.
  • 51. mod_cluster
  • 52. Jeszcze niewspomniałem o...
  • 53. Backgroudables.
  • 54. WebSockets.
  • 55. Kilka słów o wydajności.
  • 56. http://torquebox.org/news/2011/10/06/torquebox-2x-performance/
  • 57. http://torquebox.org/news/2011/10/06/torquebox-2x-performance/
  • 58. http://torquebox.org/http://github.com/torqueboxIRC: #torquebox on FreeNode@torquebox
  • 59. Dzięki.Nie zapomnij o naklejkach!