Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Future on Servlet #scala_ks

Future on Servlet #scala_ks

A presentation which shows you what the pain points are when working with Scala Future on Servlet environment

132fe0f031849e12eea7ce74f99b90f0?s=128

Kazuhiro Sera

August 01, 2015
Tweet

Transcript

  1. 'VUVSFPO4FSWMFU ,B[VIJSP4FSB!TFSBUDI 

  2. 8IPBN* w!TFSBUDI w4DBMJLF+%#$ʢʙʣ w4LJOOZ'SBNFXPSLʢʙʣ w4DBMBUSBɺKTPOTɺ4DBMBUF w. *OD4PGUXBSF%FWFMPQFS

  3. "HFOEB w8IZ'VUVSF w5ISFBEMPDBMUIJOHTJOUIFXJME w'VUVSFIBTJUTPXOUISFBEQPPM w4FSWMFU"1*`TNVUBCJMJUZ wSFDZDMJOHSFRVFTUJTTVFJOBTZODNPEF w4DBMBUSB%ZOBNJD4DPQFJTTVF w4LJOOZ`TTPMVUJPO

  4. 8IZ'VUVSF

  5. )PXUPVTF'VUVSF w $SFBUJOHBOEDPNQPTJOHNVMUJQMF 'VUVSFTBOEUIFO"XBJUSFTVMU 'VUVSF  SFUVSOJOH4FSWMFUSFTQPOTFTZODISPOPVTMZ w 3VOOJOH4FSWMFUTJOBTZODNPEF TVQQPSUFETJODF4FSWMFU

  6. 8IZ'VUVSF w6TJOH'VUVSFPO4FSWMFUJTOPUBMXBZT SFDPNNFOEFE w050) 'VUVSFJTUIFTUBOEBSEJO4DBMB OPX TPNFUJNFTOFFEFEUPTNPPUIMZ JOUFHSBUF'VUVSFCBTFEMJCSBSJFT w.ZOFBSB⒎BJSVTJOHOVMBCTDBMBPBVUI QSPWJEFSJOB4FSWMFUBQQMJDBUJPO

  7. 5ISFBEMPDBMUIJOHT JOUIFXJME

  8. 5ISFBEFENPEFM wPOFUISFBEGPSPOFSFRVFTU w"UISFBESFUVSOTBSFTQPOTFGPSBSFRVFTU w0OUIFTBNFUISFBEGPSXIPMFQSPDFTT w5ISFBEQPPMNBOBHFECZDPOUBJOFST w+BWB&&IBT+43UPTIPXIPXUPVTF DPODVSSFODZ

  9. 5ISFBE-PDBM w%ZOBNJD7BSJBCMFJO4DBMB w4PNFUJNFTIBWFBOFBTZUJNFPGJUCZ VTJOH5ISFBE-PDBMJGOPNVMUJUISFBEJOH w/POFFEUPUBLFTUBUFBSPVOEUPNFUIPET w"01GSJFOEMZ w*NQMJDJUTUBUFNBLFTDPEFTJNQMF

  10. 'VUVSFIBT JUTPXOUISFBEQPPM

  11. 'VUVSF w'VUVSFTDBMBEPD w'VUVSFBQQMZ\EJ⒎FSFOUUISFBEIFSF^ w'VUVSFTVDDFTTGVM\TBNFUISFBEIFSF^ w$BOFBTJMZDSFBUFBTZODPQFSBUJPOTUIBU SVOPOEJ⒎FSFOUUISFBETNBOBHFECZ UISFBEQPPM &YFDVUJPO$POUFYU  w5PPFBTZUPBDDFTTpFMETPOUIF4FSWMFU

    UISFBEGSPN'VUVSFUISFBET
  12. 4FSWMFU"1*`TNVUBCJMJUZ

  13. 4FSWMFU"1*JTNVUBCMF w3FRVFTUTFU"UUSJCVUF 4USJOH "OZ3FG  w*NQMFNFOUBUJPOQBUUFSOTUIBUEFQFOEPO SFRVFTUBUUSJCVUFT w0CKFDUTNBOBHFECZDPOUBJOFST w8SJUJOHSFTVMUWBMVFPOSFTQPOTFBOZUJNF w4JNQMZBDDFTTJOHUIFNBNPOHNVMUJQMF

    UISFBETJTTPGSBHJMF
  14. SFDZDMJOHSFRVFTUJTTVF JOBTZODNPEF

  15. +43+BWB4FSWMFU4QFDJpDBUJPO IUUQTKDQPSHFOKTSEFUBJM JE

  16. #VHSFRVFTUHFU$POUFYU1BUI JTOVMMXIFOXPSLJOHJOBTZODNPEF IUUQTCVHTFDMJQTFPSHCVHTTIPX@CVHDHJ JE +FUUZ

  17. #VH/VMM1PJOUFS&YDFQUJPOJOPSHBQBDIFDBUBMJOBDPOOFDUPS IUUQTC[BQBDIFPSHCVH[JMMBTIPX@CVHDHJ JED 5PNDBU

  18. +43+BWB4FSWMFU4QFDJpDBUJPO IUUQTKDQPSHFOKTSEFUBJM JE

  19. SFDZDMJOHSFRVFTUT w*OGBDU SFRVFTUDBOCFSFDZDMFECFGPSF "TZOD$POUFYUDPNQMFUF  w$POUBJOFSTDPNNPOMZEPUIFlSFDZDMFzJO PSEFSUPBWPJEQFSGPSNBODFPWFSIFBE w*G*VOEFSTUBOESJHIU FWFOUIPVHI4FSWMFU TQFDTBZTTBNFBCPVUSFTQPOTF

      SFTQPOTFXPO`UCFSFDZDMFEVOUJMJUT DMPTVSFBUMFBTUJODBTFTPGTUBUFMFTT)551
  20. 4DBMBUSB %ZOBNJD4DPQFJTTVF

  21. Too easy to access this value everywhere including Future threads

    created on this Servlet
  22. None
  23. SFRVFTUSFTQPOTF w4DBMBUSB#BTF`TSFRVFTUSFTQPOTFBSF UISFBEMPDBM UPPEBOHFSPVTUPBDDFTT UIFNGSPN'VUVSFUISFBET w"MMUIF%4-BOEFYUFOTJPOTEPO`UBDDFQU SFRVFTUBTJNQMJDJUQBSBNFUFS w*OUIFJOJUJBMTUBUF UIJTEFTJHOJT SFBTPOBCMF

    'VUVSFEJEO`UFYJTUBUUIFUJNF  4JOBUSBDPODFQU
  24. 4LJOOZ`TTPMVUJPO

  25. 4LJOOZ

  26. TLJOOZFOHJOF

  27. TLJOOZFOHJOF w4UBSUFEBTB4DBMBUSBGPSL NVDIJNQSPWFE JOUFSOBMDPEFXIJMF%4-TPVSDF DPNQBUJCJMJUZJTLFQU w.BOZSFOBNJOHSFQBDLBHJOHBOEBGFX SFNPWBMPOUSBJUT w1BTTFEBMMUIF4DBMBUSB`TFYJTUJOHUFTUT w*`EMPWFUPDPOUSJCVUFTLJOOZFOHJOF`T JNQSPWFNFOUTUP4DBMBUSBUPP

  28. TUBCMFSFRVFTU

  29. TUBCMFSFRVFTU w4UBCMFBDDFTTUPSFBEPOMZEBUB SFRVFTU BUUSJCVUFTFWFOXIFOSFRVFTUIBTCFFO SFDZDMFEXIJMF'VUVSFPQTBSFTUJMMSVOOJOH w7BMJEBUFTVOTUBCMFBDDFTTUPPCKFDUT NBOBHFECZDPOUBJOFST .  w4IPVMEXPSLBUMFBTUPO+FUUZBOE5PNDBU

  30. /PNPSF%ZOBNJD4DPQF

  31. /PNPSF%ZOBNJD4DPQF w1BTTTLJOOZFOHJOF$POUFYUBTJNQMJDJU QBSBNFUFSUPBMMUIF%4-"1*T w"TZOD4LJOOZ&OHJOF4FSWMFU'JMUFSBDDFQU $POUFYU "OZBTBDUJPOJOTUFBE w0O4DBMBUSBDPNQBUJCMFUSBJUT EFUFDU GSBHJMFDPEFCZDIFDLJOHDPNQJMBUJPO FSSPSTbFSSPSBNCJHVPVTJNQMJDJUWBMVFT`

  32. /FXBTZODUSBJU

  33. 4DBMBUSBDPNQBUJCMFUSBJU

  34. 0ILJOJ  b5IBOLT`JO0TBLB