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

Kazuhiro Sera

August 01, 2015
Tweet

More Decks by Kazuhiro Sera

Other Decks in Programming

Transcript

  1. 'VUVSFPO4FSWMFU
    ,B[VIJSP4FSB!TFSBUDI

    View Slide

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

    View Slide

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

    View Slide

  4. 8IZ'VUVSF

    View Slide

  5. )PXUPVTF'VUVSF
    w
    $SFBUJOHBOEDPNQPTJOHNVMUJQMF
    'VUVSFTBOEUIFO"XBJUSFTVMU 'VUVSF

    SFUVSOJOH4FSWMFUSFTQPOTFTZODISPOPVTMZ
    w
    3VOOJOH4FSWMFUTJOBTZODNPEF
    TVQQPSUFETJODF4FSWMFU

    View Slide

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

    View Slide

  7. 5ISFBEMPDBMUIJOHT
    JOUIFXJME

    View Slide

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

    View Slide

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

    View Slide

  10. 'VUVSFIBT
    JUTPXOUISFBEQPPM

    View Slide

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

    w5PPFBTZUPBDDFTTpFMETPOUIF4FSWMFU
    UISFBEGSPN'VUVSFUISFBET

    View Slide

  12. 4FSWMFU"1*`TNVUBCJMJUZ

    View Slide

  13. 4FSWMFU"1*JTNVUBCMF
    w3FRVFTUTFU"UUSJCVUF 4USJOH "OZ3FG

    w*NQMFNFOUBUJPOQBUUFSOTUIBUEFQFOEPO
    SFRVFTUBUUSJCVUFT
    w0CKFDUTNBOBHFECZDPOUBJOFST
    w8SJUJOHSFTVMUWBMVFPOSFTQPOTFBOZUJNF
    w4JNQMZBDDFTTJOHUIFNBNPOHNVMUJQMF
    UISFBETJTTPGSBHJMF

    View Slide

  14. SFDZDMJOHSFRVFTUJTTVF
    JOBTZODNPEF

    View Slide

  15. +43+BWB4FSWMFU4QFDJpDBUJPO
    IUUQTKDQPSHFOKTSEFUBJM JE

    View Slide

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

    View Slide

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

    View Slide

  18. +43+BWB4FSWMFU4QFDJpDBUJPO
    IUUQTKDQPSHFOKTSEFUBJM JE

    View Slide

  19. SFDZDMJOHSFRVFTUT
    w*OGBDU SFRVFTUDBOCFSFDZDMFECFGPSF
    "TZOD$POUFYUDPNQMFUF

    w$POUBJOFSTDPNNPOMZEPUIFlSFDZDMFzJO
    PSEFSUPBWPJEQFSGPSNBODFPWFSIFBE
    w*G*VOEFSTUBOESJHIU FWFOUIPVHI4FSWMFU
    TQFDTBZTTBNFBCPVUSFTQPOTF

    SFTQPOTFXPO`UCFSFDZDMFEVOUJMJUT
    DMPTVSFBUMFBTUJODBTFTPGTUBUFMFTT)551

    View Slide

  20. 4DBMBUSB
    %ZOBNJD4DPQFJTTVF

    View Slide

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

    View Slide

  22. View Slide

  23. SFRVFTUSFTQPOTF
    w4DBMBUSB#BTF`TSFRVFTUSFTQPOTFBSF
    UISFBEMPDBM UPPEBOHFSPVTUPBDDFTT
    UIFNGSPN'VUVSFUISFBET
    w"MMUIF%4-BOEFYUFOTJPOTEPO`UBDDFQU
    SFRVFTUBTJNQMJDJUQBSBNFUFS
    w*OUIFJOJUJBMTUBUF UIJTEFTJHOJT
    SFBTPOBCMF 'VUVSFEJEO`UFYJTUBUUIFUJNF
    4JOBUSBDPODFQU

    View Slide

  24. 4LJOOZ`TTPMVUJPO

    View Slide

  25. 4LJOOZ

    View Slide

  26. TLJOOZFOHJOF

    View Slide

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

    View Slide

  28. TUBCMFSFRVFTU

    View Slide

  29. TUBCMFSFRVFTU
    w4UBCMFBDDFTTUPSFBEPOMZEBUB SFRVFTU
    BUUSJCVUFTFWFOXIFOSFRVFTUIBTCFFO
    SFDZDMFEXIJMF'VUVSFPQTBSFTUJMMSVOOJOH
    w7BMJEBUFTVOTUBCMFBDDFTTUPPCKFDUT
    NBOBHFECZDPOUBJOFST .

    w4IPVMEXPSLBUMFBTUPO+FUUZBOE5PNDBU

    View Slide

  30. /PNPSF%ZOBNJD4DPQF

    View Slide

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

    View Slide

  32. /FXBTZODUSBJU

    View Slide

  33. 4DBMBUSBDPNQBUJCMFUSBJU

    View Slide

  34. 0ILJOJ

    b5IBOLT`JO0TBLB

    View Slide