ęŽ’ä»–åˆ¶å¾”ć§Google Apps Scriptć‚’å®‰å…Øć«å®Ÿč”Œ

G Suiteć®å¤§ććŖē‰¹å¾“恮ļ¼‘恤ćØć—ć¦ć€č¤‡ę•°ååŒę™‚ć«åŒäø€ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć«åÆ¾ć—ć¦ä½œę„­ćŒå‡ŗę„ć‚‹ć‚³ćƒ©ćƒœćƒ¬ćƒ¼ć‚·ćƒ§ćƒ³ę©Ÿčƒ½ć§ć™ć€‚ć§ć™ćŒć€ä¾‹ćˆć°ć‚¹ćƒ—ćƒ¬ćƒƒćƒ‰ć‚·ćƒ¼ćƒˆäøŠć§å¤§ććŖć‚³ćƒ”ćƒšć‚’ć™ć‚‹ć‚¹ć‚ÆćƒŖćƒ—ćƒˆć‚’č¤‡ę•°åćŒåŒę™‚ć«ä½æć£ćŸå “åˆć€ć‚„ć‚„ć“ć—ć„äŗ‹ć«ćŖć£ć¦ć—ć¾ć„ć¾ć™ļ¼ˆę›“恫čØ€ćˆć°é€£ē•Ŗć‚’å–ć£ć¦ä»˜ć‘åŠ ćˆć‚‹å “åˆć€ē•Ŗå·ćŒć‚ć”ć‚ƒćć”ć‚ƒć«ćŖć‚Šć¾ć™ļ¼‰ć€‚

恝恓恧ä½æē”Øć™ć‚‹ć®ćŒęŽ’ä»–åˆ¶å¾”ć€‚ęŽ’ä»–åˆ¶å¾”ćØćÆåˆ„ć®čŖ°ć‹ćŒå®Ÿč”Œć—ć¦ć„ć‚‹å “åˆć«ćÆć€ćć®ć‚¹ć‚ÆćƒŖćƒ—ćƒˆć®å®Ÿč”Œć‚’ćƒ­ćƒƒć‚Æć•ć›ć¦ć—ć¾ć†ę©Ÿčƒ½ć§ć€äø€ę–¹ćŒå®Ÿč”Œäø­ćÆ悂恆äø€ę–¹ćÆćć®å®Ÿč”Œć‚’å¾…ćŸć›ć‚‹ę©Ÿčƒ½ć§ć™ć€‚ęŒ‡å®šć—ćŸē§’ꕰ仄äøŠå¾…ćŸć•ć‚ŒćŸå “åˆć«ćÆ态ć‚Øćƒ©ćƒ¼ćŒē™ŗē”Ÿć™ć‚‹ć®ć§ć€é€šåøøtry怜catchę–‡ć‚‚åˆć‚ć›ć¦ä½æē”Øć™ć‚‹ć®ćŒå®šēŸ³ć§ć™ć€‚

ęŽ’ä»–åˆ¶å¾”ć«ćÆ3ēØ®é”žć®ć‚æć‚¤ćƒ—ćŒć‚ć‚Šć¾ć™ć€‚

é›£ę˜“åŗ¦ļ¼š


今回ä½æē”Øć™ć‚‹ć‚¹ćƒ—ćƒ¬ćƒƒćƒ‰ć‚·ćƒ¼ćƒˆ

  • ęŽ’ä»–åˆ¶å¾”ć‚µćƒ³ćƒ—ćƒ«1 – 3ēØ®é”žć®ęŽ’ä»–åˆ¶å¾”ć‚³ćƒ¼ćƒ‰ćŒå…„ć£ć¦ć„ć¾ć™ļ¼ˆćƒ©ć‚¤ćƒ–ćƒ©ćƒŖå…ƒć§ć‚‚ć‚ć‚‹ļ¼‰
  • ęŽ’ä»–åˆ¶å¾”ć‚µćƒ³ćƒ—ćƒ«2 – ć‚¹ć‚ÆćƒŖ惗惈惭惃ć‚Æć‚’ć‚µćƒ³ćƒ—ćƒ«1ć‹ć‚‰ćƒ©ć‚¤ćƒ–ćƒ©ćƒŖćØć—ć¦å‘¼ć³å‡ŗć™ć‚³ćƒ¼ćƒ‰ć ć‘ćŒå…„ć£ć¦ć‚‹

ā€»ć‚µćƒ³ćƒ—ćƒ«ć§ćÆcopypaste()ćØć„ć†ćƒ”ć‚¤ćƒ³ćƒ«ćƒ¼ćƒćƒ³ć‚’ćć‚Œćžć‚Œć®ćƒ«ćƒ¼ćƒćƒ³ć‹ć‚‰å‘¼ć³å‡ŗć—ć¦ć„ć¾ć™ć€‚

ꦂ要

LockServicećØ恄恆ć‚Æćƒ©ć‚¹ć‚’ä½æē”Øć™ć‚‹ć®ć§ć™ćŒć€3ēØ®é”žć®ćƒ­ćƒƒć‚Æć‚µćƒ¼ćƒ“ć‚¹ćŒć‚ć‚Šć¾ć™ć€‚åæ…ćšå†’é ­ć§ćƒ­ćƒƒć‚Æć‚’å®£čØ€ć—ć¦ć€ćć®å¾ŒęŒ‡å®šē§’ę•°ć®ćƒ­ćƒƒć‚Æć‚’å®Ÿę–½ć€ęœ€ęœŸć«åæ…ćšćƒ­ćƒƒć‚Æ悒ćƒŖćƒŖćƒ¼ć‚¹ć™ć‚‹ćØć„ć£ćŸäø€é€£ć®ę‰‹é †ćŒåæ…要恫ćŖć£ć¦ć„ć¾ć™ļ¼ˆć§ćŖ恑悌恰ć‚æć‚¤ćƒ ć‚¢ć‚¦ćƒˆć™ć‚‹ć¾ć§ćƒ­ćƒƒć‚Æć•ć‚Œć£ć±ćŖ恗恫ćŖć‚Šć¾ć™ļ¼‰ć€‚

ęŒ‡å®šē§’ę•°ć‚ˆć‚Šć‚‚å‰ć«ć‚¹ć‚ÆćƒŖ惗惈恌ēµ‚äŗ†ć—ćŸå “åˆć€å¾…ćŸć•ć‚Œć¦ć„ćŸå“ćÆå³ę™‚ć«ć‚¹ć‚ÆćƒŖćƒ—ćƒˆćŒå®Ÿę–½ć•ć‚Œć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚é€†ć«ęŒ‡å®šē§’ꕰ仄äøŠå¾…ćŸć•ć‚ŒćŸå “åˆć«ćÆć‚Øćƒ©ćƒ¼ćŒē™ŗē”Ÿć—ć‚¹ć‚ÆćƒŖćƒ—ćƒˆć®å®Ÿč”ŒćŒć‚­ćƒ£ćƒ³ć‚»ćƒ«ć•ć‚Œć¾ć™ć€‚

惭惃ć‚ÆćÆ态DocumentLock态UserLock态ScriptLockćŒć‚ć‚Šćć‚Œćžć‚Œć«ē‰¹å¾“ćŒć‚ć‚Šć¾ć™ć€‚ć¾ćŸęŒ‡å®šē§’ę•°ć®ćƒ­ćƒƒć‚Æć®å®Ÿę–½ć§ćÆtryLockćØwaitLock恮ļ¼’ć¤ćŒć‚ć‚Šć€ć“ć‚Œć‚‚ć¾ćŸå°‘ć—ęŒ™å‹•ćŒē•°ćŖć‚Šć¾ć™ć€‚ęœ€ęœŸć«releaseLock恧惭惃ć‚Æć‚’é–‹ę”¾ć™ć‚‹ć‚ć‘ć§ć™ć€‚releaseLock悒åæ˜ć‚ŒćŸć‚Šå®Ÿč”Œć•ć‚Œćšć«ć‚Øćƒ©ćƒ¼ć§é€”äø­ć§ę­¢ć¾ć‚‹ćØ态ꬔ恮äŗŗćÆę•°åē§’å¾…ćŸć•ć‚ŒćŸć‚Šć€ć¾ćŸć€ŒåŒć˜ć‚¹ć‚ÆćƒŖćƒ—ćƒˆć«åÆ¾ć™ć‚‹ lockservice ć®ę“ä½œćŒå¤šć™ćŽć¾ć™ć€ćØć„ć£ćŸć‚Øćƒ©ćƒ¼ć‚’ę‹›ćć¾ć™ć®ć§ę³Øꄏ怂

図ļ¼šåœ°å‘³ćŖę©Ÿčƒ½ć ć‘ć‚Œć©ēæ’å¾—åæ…é ˆć®ę©Ÿčƒ½ć§ć™

tryLockćØwaitLock恮違恄

ęŒ‡å®šē§’ę•°ć®ćƒ­ćƒƒć‚Æć‚’å–å¾—ć™ć‚‹éš›ć«ä½æ恆ļ¼’ć¤ć®ćƒ”ć‚½ćƒƒćƒ‰ć§ć™ćŒć€äø”者ćÆć”ć‚‡ć£ćØęŒ™å‹•ćŒē•°ćŖć‚Šć¾ć™ć€‚tryLockćÆ惭惃ć‚Æć‚’å–å¾—ę™‚ć«čŖ°ć‹ćŒćƒ­ćƒƒć‚Æć‚’ć—ć¦ć¦ęŒ‡å®šē§’ę•°č¶…ćˆć‚‹ćØfalse恌čæ”ć£ć¦ćć‚‹ä»•ēµ„ćæ恧恙怂äø€ę–¹ć€waitLockćÆfalse恌čæ”ć£ć¦ćć‚‹ć®ć§ćÆćŖ恏ć‚Øćƒ©ćƒ¼ćŒē™ŗē”Ÿć™ć‚‹ä»•ēµ„ćæ恫ćŖć£ć¦ć„ć‚‹ć®ć§ć€try怜catch恌åæ…要恧恙怂

tryLock恮ä½æć„ę–¹

ā€»Lockå–å¾—ć«å¤±ę•—ć—ćŸć‚‰false恌čæ”ć£ć¦ćć‚‹ć®ć§ć€ifꖇ恧惭惃ć‚Æå–å¾—ć‚’č©¦ćæć¦å¤±ę•—ę™‚ć«ćÆelseꖇ仄äø‹ć«å‡¦ē†ćŒē§»ć‚Šć€ćƒ”ćƒƒć‚»ćƒ¼ć‚øć‚’ćƒ¦ćƒ¼ć‚¶ć«ä¼ćˆć‚‹å‡¦ē†ć‚’čؘčæ°ć—ć¾ć™ć€‚ćƒ­ćƒƒć‚ÆćŒå–å¾—ć§ćć¦ć‚‚ć€ćƒ”ć‚¤ćƒ³ćƒ«ćƒ¼ćƒćƒ³ć§ć‚Øćƒ©ćƒ¼ćŒē™ŗē”Ÿć—ćŸę™‚ć«å‚™ćˆć¦ć€try怜catch怜finallyꖇ恧ć‚Øćƒ©ćƒ¼ćƒˆćƒ©ćƒƒćƒ—ć®å‡¦ē†ć‚’ćć”悓ćØć—ć¦ćŠć„ć¦ć‚ć’ć¾ć™ć€‚

waitLock恮ä½æć„ę–¹

tryLockć‚ˆć‚Šć‚‚å°‘ć€…å‡¦ē†ć®čؘčæ°ę³•ćŒć‚ˆć‚Šé«˜åŗ¦ć«ćŖć£ć¦ć„ć¾ć™ć€‚č‡Ŗ分ćÆ通åøø恓恔悉悒ä½æć£ć¦ć„ć¾ć™ć€‚try怜catch怜finallyꖇ悂äø€éƒØ恧ćÆćŖ恏å…Øä½“ć«ćŸć„ć—ć¦ęŽ›ć‘ć¦ć€ęœ€ęœŸć«releaseLockć§é–‹ę”¾ć—ęˆåŠŸę™‚ćƒ»ć‚Øćƒ©ćƒ¼ę™‚ć®ćƒ”ćƒƒć‚»ćƒ¼ć‚øć‚’ćƒ¦ćƒ¼ć‚¶ć«č”Øē¤ŗć™ć‚‹ć‚ˆć†ć«ć—ć¦ć„ć¾ć™ć€‚ć‚æć‚¤ćƒ ć‚¢ć‚¦ćƒˆćŖ恮恋ļ¼Ÿćƒ”ć‚¤ćƒ³ćƒ«ćƒ¼ćƒćƒ³ć®ć‚Øćƒ©ćƒ¼ćŖ恮恋ļ¼Ÿć‚’åŒŗåˆ„ć™ć‚‹ćŸć‚ć«ć€checkword恫恦ć‚æć‚¤ćƒ ć‚¢ć‚¦ćƒˆć‹ć©ć†ć‹ć‚’åˆ¤å®šć•ć›ć¦ć„ć¾ć™ć€‚

ć‚½ćƒ¬ä»„å¤–ć®å “åˆćÆe.message恫恦ć‚Øćƒ©ćƒ¼å†…å®¹ć‚’ćƒ”ćƒƒć‚»ćƒ¼ć‚øć«åŠ ćˆć¦ć„ć¾ć™ć€‚

hasLock恮ä½æć„ę–¹

tryLockćØwaitLock恮他恫悂hasLockćØå‘¼ć°ć‚Œć‚‹ę¤œčؼē”Øć®ćƒ”ć‚½ćƒƒćƒ‰ćŒć‚ć‚Šć¾ć™ć€‚ć“ć®ćƒ”ć‚½ćƒƒćƒ‰ćÆ怌惭惃ć‚ÆćŒć•ć‚Œć¦ć„ć‚‹ć‹ć©ć†ć‹ļ¼Ÿć€ć‚’čŖæć¹ć‚‹ē‚ŗć®ćƒ”ć‚½ćƒƒćƒ‰ć§ć€tryLockćŖć©ć®å¾Œć§ć€hasLockć§ćƒ†ć‚¹ćƒˆć‚’ć—ć€ä¾‹ćˆć°ćƒ­ćƒƒć‚ÆćŒå–ć‚Œć¦ć„ć‚‹ć‹ć©ć†ć‹ļ¼Ÿć‚’å…ƒć«å‡¦ē†ć‚’恕恛悋恓ćØ恌å‡ŗę„ć¾ć™ć€‚hasLock恧false恌čæ”ć£ć¦ććŸå “åˆć«ćÆć€é€Ÿę”»ć§ćć®å “ć§ć‚¹ć‚ÆćƒŖćƒ—ćƒˆć®å®Ÿę–½ć‚’ć‚­ćƒ£ćƒ³ć‚»ćƒ«ć•ć›ć‚‹äŗ‹ćŒåÆčƒ½ć§ć™ć€‚

惭惃ć‚Æ悒ä½æć£ć¦ćæ悋

ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆćƒ­ćƒƒć‚Æ

ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆćƒ­ćƒƒć‚ÆćØćÆć€åŒäø€ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć«åÆ¾ć™ć‚‹ć‚¹ć‚ÆćƒŖćƒ—ćƒˆć®å®Ÿę–½ć‚’ćƒ­ćƒƒć‚Æ恙悋ē‚ŗć®ćƒ”ć‚½ćƒƒćƒ‰ć§ć™ć€‚åŒäø€ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć«åÆ¾ć™ć‚‹å‡¦ē†ćŒćƒ­ćƒƒć‚Æć•ć‚Œć‚‹ć®ć§ć€é€šåøø恓悌悒ä½æ恆äŗ‹ćŒå¤šć„ć§ć™ć€‚åŒäø€äŗŗē‰©ć§ć‚ć‚ć†ćØćŖ恋悍恆ćØåŒŗåˆ„ć—ć¾ć›ć‚“ć€‚ē‰¹ć«ćƒ¦ćƒ‹ćƒ¼ć‚ÆID恮ē”Ÿęˆć‚„ćć‚Œć«åÆ¾ć™ć‚‹ć‚¹ćƒ—ćƒ¬ćƒƒćƒ‰ć‚·ćƒ¼ćƒˆćø恮ę›øćč¾¼ćæ処ē†ć§ćÆåæ…é ˆć®ćƒ­ćƒƒć‚Æ恧恙怂

å®Ÿę–½ćƒ†ć‚¹ćƒˆćÆć€ć‚µćƒ³ćƒ—ćƒ«1ć®ć‚¹ćƒ—ćƒ¬ćƒƒćƒ‰ć‚·ćƒ¼ćƒˆć«ć¦ćƒ”ćƒ‹ćƒ„ćƒ¼ć‚ˆć‚Šć€Œä½œę„­å®Ÿč”Œć€ā‡’ć€Œćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆćƒ­ćƒƒć‚Æć€ć§ćƒ†ć‚¹ćƒˆćŒå‡ŗę„ć¾ć™ć€‚ļ¼’恤仄äøŠć®ć‚¢ć‚«ć‚¦ćƒ³ćƒˆć§åŒć˜ć‚¹ć‚ÆćƒŖćƒ—ćƒˆć‚’åŒę™‚ć«å®Ÿę–½ć—ć¦ćæ悋ćØęŒ™å‹•ćŒć‚ć‹ć‚‹ćØę€ć„ć¾ć™ć€‚20ē§’é–“ć®ćƒ­ćƒƒć‚Æć‚’åŠ ćˆć¦ć„ć¾ć™ć€‚

ćƒ¦ćƒ¼ć‚¶ćƒ¼ćƒ­ćƒƒć‚Æ

ćƒ¦ćƒ¼ć‚¶ćƒ­ćƒƒć‚ÆćØćÆć€åŒäø€ćƒ¦ćƒ¼ć‚¶ć«ć‚ˆć‚‹ć‚¹ć‚ÆćƒŖćƒ—ćƒˆć®å®Ÿę–½ć‚’ćƒ­ćƒƒć‚Æć™ć‚‹ćŸć‚ć®ćƒ”ć‚½ćƒƒćƒ‰ć§ć™ć€‚ć‚ˆć£ć¦ć€åˆ„ć®äŗŗćŒåŒę™‚ć«ć‚¹ć‚ÆćƒŖćƒ—ćƒˆć‚’å®Ÿę–½å‡ŗę„ć¦ć—ć¾ć„ć¾ć™ć®ć§ę³Øꄏ恌åæ…要恧恙怂äø»ć«åŒäø€äŗŗē‰©ć«ć‚ˆć‚‹äŗŒé‡čµ·å‹•ć‚’ćƒ­ćƒƒć‚Æć™ć‚‹ćŸć‚ć«ä½æć„ć¾ć™ć€‚ć‚ć¾ć‚Šć‚¹ćƒ—ćƒ¬ćƒƒćƒ‰ć‚·ćƒ¼ćƒˆćø恮ę›øćč¾¼ćæćŖ恩他äŗŗćØćƒćƒƒćƒ†ć‚£ćƒ³ć‚°ćÆ恗ćŖć„å‡¦ē†ć«åÆ¾ć—ć¦ä½æē”Øć—ć¾ć™ć€‚

å®Ÿę–½ćƒ†ć‚¹ćƒˆćÆć€ć‚µćƒ³ćƒ—ćƒ«ļ¼‘ć®ć‚¹ćƒ—ćƒ¬ćƒƒćƒ‰ć‚·ćƒ¼ćƒˆć«ć¦ćƒ”ćƒ‹ćƒ„ćƒ¼ć‚ˆć‚Šć€Œä½œę„­å®Ÿč”Œć€ā‡’ć€Œćƒ¦ćƒ¼ć‚¶ćƒ­ćƒƒć‚Æć€ć§ćƒ†ć‚¹ćƒˆćŒå‡ŗę„ć¾ć™ć€‚č¤‡ę•°äŗŗē‰©ć§åŒć˜ć‚¹ć‚ÆćƒŖćƒ—ćƒˆć‚’å®Ÿę–½ć™ć‚‹ćØęŒ™å‹•ćŒć‚ć‹ć‚Šć¾ć™ć€‚åŒę™‚ć«å®Ÿč”Œå‡ŗę„ć¦ć—ć¾ć†ē‚¹ć§åŒŗåˆ„ćŒä»˜ćć¾ć™ć€‚

ć‚¹ć‚ÆćƒŖ惗惈惭惃ć‚Æ

ć‚¹ć‚ÆćƒŖ惗惈惭惃ć‚ÆćÆć”ć‚‡ć£ćØē‰¹ę®Šć§ć™ć€‚同äø€ć‚¹ć‚ÆćƒŖćƒ—ćƒˆć®å®Ÿę–½ć«åÆ¾ć—ć¦ćƒ­ćƒƒć‚Æ悒ꎛ恑悋恮恧态č”Ø面äøŠćÆćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆćƒ­ćƒƒć‚ÆćØęŒ™å‹•ćŒć»ć¼åŒć˜ć§ć™ć€‚ć§ć™ćŒć€ć“ć®ćƒ­ćƒƒć‚Æ恮ä½æć„ę–¹ćÆ恝恆恧ćÆć‚ć‚Šć¾ć›ć‚“ć€‚ć“ć‚ŒćÆ通åøøćƒ©ć‚¤ćƒ–ćƒ©ćƒŖåŒ–ć—ćŸćƒ«ćƒ¼ćƒćƒ³ć®äø­ć§ä½æē”Øć—ć€åŒäø€ć‚¹ć‚ÆćƒŖćƒ—ćƒˆć ć‘ć‚Œć©ć€åˆ„ć®ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć§ćć‚Œćžć‚Œå‚ē…§ć—利ē”Øć—ć¦ć„ć‚‹å “åˆć«ä½æć„ć¾ć™ć€‚

今回ćÆć‚µćƒ³ćƒ—ćƒ«1ć«ć‚¹ć‚ÆćƒŖ惗惈惭惃ć‚Æć®ćƒ”ć‚¤ćƒ³ćƒ«ćƒ¼ćƒćƒ³ć‚’čؘčæ°ć—ćƒ©ć‚¤ćƒ–ćƒ©ćƒŖåŒ–ć€ć‚µćƒ³ćƒ—ćƒ«2ć«ćć®ćƒ©ć‚¤ćƒ–ćƒ©ćƒŖć‚’å‘¼ć³å‡ŗ恗恦굁ē”Øć•ć›ć¦ć„ć¾ć™ć€‚ć‚µćƒ³ćƒ—ćƒ«ļ¼‘ć®ć‚·ćƒ¼ćƒˆć§å®Ÿč”Œå¾Œć‚µćƒ³ćƒ—ćƒ«ļ¼’ć§å®Ÿę–½ć—ć¦ć‚‚ć€ęœ€åˆć«å‘¼ć³å‡ŗć—ćŸå“ć®å‡¦ē†ćŒēµ‚ć‚ć‚‹ć¾ć§ć€ć‚µćƒ³ćƒ—ćƒ«ļ¼’å“ć®å‡¦ē†ćÆć‚¹ć‚ÆćƒŖ惗惈ćÆå¾…ę©Ÿć•ć›ć‚‰ć‚Œć¾ć™ć€‚äø»ć«ć€ļ¼’ć¤ć®ć‚·ćƒ¼ćƒˆć§ćƒ¦ćƒ‹ćƒ¼ć‚ÆćŖIDć‚’é™ć‚‹ę™‚ć«äø”ć‚·ćƒ¼ćƒˆć§é‡č¤‡ć—ćŖć„ć‚ˆć†ć«é™ć‚‹ćØć„ć£ćŸć‚ˆć†ćŖ処ē†ć§åˆ©ē”Øå‡ŗę„ć¾ć™ć€‚

å®Ÿę–½ćƒ†ć‚¹ćƒˆćÆć‚µćƒ³ćƒ—ćƒ«ļ¼‘ć®ć‚¹ćƒ—ćƒ¬ćƒƒćƒ‰ć‚·ćƒ¼ćƒˆćƒ”ćƒ‹ćƒ„ćƒ¼ć‚ˆć‚Šć€Œä½œę„­å®Ÿč”Œć€ā‡’ć€Œć‚¹ć‚ÆćƒŖ惗惈惭惃ć‚Æć€ć‚’å®Ÿę–½ć€‚ć‚µćƒ³ćƒ—ćƒ«ļ¼’ć§ć€Œä½œę„­å®Ÿč”Œć€ā‡’ć€Œć‚¹ć‚ÆćƒŖ惗惈惭惃ć‚Æć€ć‚’åŒę™‚ć«å®Ÿę–½ć™ć‚‹ćØęŒ™å‹•ćŒć‚ć‹ć‚Šć¾ć™ć€‚ć‚µćƒ³ćƒ—ćƒ«ļ¼’ćÆć‚µćƒ³ćƒ—ćƒ«ļ¼‘ć®å®Ÿę–½ćŒēµ‚ć‚ć‚‹ć¾ć§å¾…ę©Ÿć—ć¦ć„ć¾ć™ć€‚

ć‚µćƒ³ćƒ—ćƒ«ļ¼’偓ćÆćƒ”ć‚¤ćƒ³ćƒ«ćƒ¼ćƒćƒ³ć¾ć‚‹ć”ćØ存åœØć›ćšå‘¼ć³å‡ŗ恗恦恄悋恠恑恧恙ļ¼ˆlockmanćØć†åå‰ć§ć‚µćƒ³ćƒ—ćƒ«ļ¼‘ć®ćƒ©ć‚¤ćƒ–ćƒ©ćƒŖ悒čæ½åŠ ć—ć¦ć‚ć‚Šć¾ć™ļ¼‰ć€‚

äø€åæœć‚³ćƒ”ćƒšć®ćƒ«ćƒ¼ćƒćƒ³

今回ćÆęŽ’ä»–åˆ¶å¾”ć®ē‚ŗ恮ć‚Øćƒ³ćƒˆćƒŖćƒ¼ć§ć™ć®ć§ć€ć‚³ćƒ”ćƒšć™ć‚‹ćƒ«ćƒ¼ćƒćƒ³ćÆćŠć¾ć‘ć§ć™ć€‚ć“ć“ć§ę³Øē›®ć™ć¹ććÆåŒę™‚å®Ÿę–½ć‚„ć‚¹ć‚ÆćƒŖ惗惈惭惃ć‚Æå®Ÿč”Œę™‚ć®IDć®å€¤ć®ä»˜ćę–¹ć§ć™ć€‚ć“ć®ćƒ«ćƒ¼ćƒćƒ³ćÆå…Øć¦ć®ć‚¹ć‚ÆćƒŖ惗惈惭惃ć‚Æć‚µćƒ³ćƒ—ćƒ«ć‚¹ć‚ÆćƒŖćƒ—ćƒˆć§å‘¼ć³å‡ŗć—ć¦ć„ć¦ć€ćƒ¦ćƒ‹ćƒ¼ć‚ÆIDć‚‚å…±ē”Øć•ć›ć¦ć„ć¾ć™ć€‚ę•…ć«ć€IDć®ä»˜ćę–¹ć«å·®ćŒä»˜ćć¾ć™ć€‚

tryļ½žcatchꖇ恧惭惃ć‚Æäø­ć§ć‚ć‚‹ć‚±ćƒ¼ć‚¹ć‚’å–å¾—ć™ć‚‹

waitLockć®å “åˆć€tryļ½žcatchꖇ悒ä½æē”Øć—ć¦ć„ć¾ć™ćŒć€ć“ć®ć¾ć¾ć ćØ态ꙮ通恮ć‚Øćƒ©ćƒ¼ćŒē™ŗē”Ÿć—恦悂态catchę–‡ćŒä½œå‹•ć—ć¦ć—ć¾ć„ć¾ć™ć€‚waitLock恮惭惃ć‚ÆꙂ間悒超過恗恦ć‚Øćƒ©ćƒ¼ć«ćŖć£ćŸć‚±ćƒ¼ć‚¹ćØåŒŗåˆ„ć™ć‚‹ć«ćÆéƒ½åˆćŒę‚Ŗć„ć§ć™ć€‚ć“ć®å “åˆć€catchę–‡ćŒę•™ćˆć¦ćć‚Œć‚‹ćƒ”ćƒƒć‚»ćƒ¼ć‚øć‚’å–å¾—ć—ć€ćć®å€¤ćŒå«ć¾ć‚Œć¦ć„ć‚‹ć‹ć‚’ćƒć‚§ćƒƒć‚Æ恙悋悈恆ćŖć‚³ćƒ¼ćƒ‰ć‚’čؘčæ°ć™ć‚‹ćØč‰Æć„ć§ć™ć€‚å…·ä½“ēš„恫ćÆ态

ćØć„ć£ćŸć‚ˆć†ć«ć€e.messageć®é…åˆ—ć®äø­ć«ć€Œćƒ­ćƒƒć‚Æ恮ć‚æć‚¤ćƒ ć‚¢ć‚¦ćƒˆ: åˆ„ć®ćƒ—ćƒ­ć‚»ć‚¹ćŒćƒ­ćƒƒć‚Æ悒äæęŒć—ć¦ć„ć‚‹ę™‚é–“ćŒé•·ć™ćŽć¾ć—ćŸć€‚ć€ćØ恄恆ꖇčØ€ćŒå«ć¾ć‚Œć¦ć„ćŸć‚‰ć€ćƒ­ćƒƒć‚Æć‚Øćƒ©ćƒ¼ć§ć™ć®ć§ć€ćć®ę—Øć®ćƒ”ćƒƒć‚»ćƒ¼ć‚ø悒å‡ŗć—ć€ć‚½ćƒ¬ä»„å¤–ć§ć‚Øćƒ©ćƒ¼ć«ćŖć£ćŸå “åˆć«ćÆć€ćć®ćŸć‚ć®ćƒ”ćƒƒć‚»ćƒ¼ć‚ø悒å‡ŗ恙ćØć„ć£ćŸć‚ˆć†ć«ć€ć‚Øćƒ©ćƒ¼åˆ„ć«å‡¦ē†ć‚’å®Ÿč£…å‡ŗę„ć¾ć™ć€‚ćŸć ć—ć€ć“ć®catchå†…ć§ē¶šć‘恦Browser.msgBox悄ui.alertćŖ恩恧č”Øē¤ŗ恕恛悈恆ćØ恙悋ćØ态Unexpected exception upon serialization continuationćØ恄恆ć‚Øćƒ©ćƒ¼ćŒå‡ŗć¦ę­¢ć¾ć£ć¦ć—ć¾ć„ć¾ć™ć®ć§ć€ä½æćˆć¾ć›ć‚“ć€‚åƾē­–ćØć—ć¦ć€åˆ„ć«flag悒ē”Øę„ć—ć¦ćŠćć€ćƒ­ćƒƒć‚Æć‚Øćƒ©ćƒ¼ćŖ悉1ćØ恗恦态try怜catchę–‡ć®å¤–å“ć§flagåˆ¤å®šć‚’ć•ć›ć¦ć€ćƒ€ć‚¤ć‚¢ćƒ­ć‚°ć‚’å‡ŗć›ć°å›žéæå‡ŗę„ć¾ć™ć€‚

ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰

ćƒć‚¤ćƒ³ćƒˆ

  • LockServicećÆꀧč³ŖäøŠć€tryļ½žcatch꧋ꖇćØåøøć«ćƒšć‚¢ć§ä½æē”Øć—ć¾ć™ć€‚Lockć‚’å–å¾—ć—ć‚ˆć†ćØć—ć¦å¤±ę•—ć—ćŸå “åˆć®ć‚Øćƒ©ćƒ¼å‡¦ē†ć‚’åæ…ćšć‚³ćƒ¼ćƒ‰ć«čؘčæ°ć—ć¾ć—ć‚‡ć†ć€‚
  • ć‚¦ć‚§ćƒ–ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć‚’ä½œć£ćŸå “åˆć«ć€HTMLå“ć‹ć‚‰ć®ćƒŖć‚Æć‚Øć‚¹ćƒˆć«åÆ¾ć—ć¦LockService恮ć‚Øćƒ©ćƒ¼ćŒå‡ŗćŸå “åˆć€ćć®ć¾ć¾ć§ćÆć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć«ćÆä¼ć‚ć‚‰ćŖć„ć®ć§ć€ć“ć®å “åˆć€ć‚Øćƒ©ćƒ¼å‡¦ē†ć«ćÆåæ…恚return恧ć‚Øćƒ©ćƒ¼å†…å®¹ć‚’čæ”恗恦äøŠć’ć¾ć—ć‚‡ć†ć€‚ć‚¦ć‚§ćƒ–ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³å“ć‹ć‚‰ćÆ态google.script.run.withSuccessHandlerć«ć¦å‘¼ć³å‡ŗć—ć€ć‚³ćƒ¼ćƒ«ćƒćƒƒć‚Æć§å—ć‘å–ć‚‹å“ć®é–¢ę•°ć§ćć®ć‚Øćƒ©ćƒ¼å†…å®¹ć‚’ćƒ€ć‚¤ć‚¢ćƒ­ć‚°ć«ć§ć‚‚å‡ŗåŠ›ć™ć‚‹ć®ćŒćƒ™ć‚¹ćƒˆć§ć™ć€‚
  • 惭惃ć‚Æć•ć›ć¦ćŠćę™‚é–“ć®čØ­å®šćŒć‚­ćƒ¢ć§ć™ć€‚é•·éŽćŽć‚‹å “åˆć€ä»–ć®ę–¹ć®å‡¦ē†ćÆå¾…ć£ć¦ć‚‹ēŠ¶ę…‹ć§ć™ć€‚ēŸ­ć™ćŽć‚‹ćØ态惭惃ć‚ÆćŒč§£é™¤ć•ć‚Œć‚‹ć®ć§ć€ćƒ‡ćƒ¼ć‚æć®ćƒćƒƒćƒ†ć‚£ćƒ³ć‚°ē­‰ćŒē™ŗē”Ÿć—ć¦ć—ć¾ć„ć¾ć™ć€‚
  • é‡ć‚ć®å‡¦ē†ć‚’č”Œć†å “åˆć€ćƒ­ćƒƒć‚Æć•ć›ć¦ćŠćę™‚é–“ä»„äøŠć«å‡¦ē†ćŒęŽ›ć‹ć‚‹åÆčƒ½ę€§ć‚‚ć‚ć‚Šć¾ć™ć€‚ćć‚Œć‚’ęƒ³å®šć—ć¦ć€ćƒ­ćƒƒć‚Æ恌ē¶™ē¶šć—ć¦ć‚‹ć‹ć‚’ćƒć‚§ćƒƒć‚Æ恗恦ē¶™ē¶šć—恦恄ćŖć„å “åˆć«ćÆå†ć³ćƒ­ćƒƒć‚Æć‚’å–å¾—ć™ć‚‹ć‚ˆć†ćŖćƒ«ćƒ¼ćƒćƒ³ć‚’å…„ć‚Œć¦ćŠććØč‰Æ恄恧恗悇恆怂
  • 惭惃ć‚Æäø­ć€ä»–ć®ę–¹ć®ćƒŖć‚Æć‚Øć‚¹ćƒˆćÆęŒ‡å®šę™‚é–“åˆ†ć‚¦ć‚§ć‚¤ćƒˆć®ēŠ¶ę…‹ć«ćŖć‚Šć¾ć™ć€‚ęŒ‡å®šę™‚é–“ć‚’č¶…éŽć—ć¦ć—ć¾ć£ćŸå “åˆć€tryļ½žcatchć«ć‚ˆć£ć¦ć‚Øćƒ©ćƒ¼å‡¦ē†ć«ē§»č”Œć•ć›ć‚‰ć‚Œć¾ć™ć€‚通åøø恮Lockć®å “åˆć€ęŒ‡å®šę™‚é–“å†…ć«ćƒ­ćƒƒć‚ÆćŒč§£é™¤ć•ć‚Œć‚‹ćØć€ä»–ć®ę–¹ć®ćƒŖć‚Æć‚Øć‚¹ćƒˆć®å‡¦ē†ćŒå§‹ć¾ć‚Šć¾ć™ć€‚
  • 惭惃ć‚Æć‚’å–å¾—ć—ć¦ć‹ć‚‰ć€å‡¦ē†ć®é€”äø­ć§Browser.msgboxćŖć©ć®ćƒ”ćƒƒć‚»ćƒ¼ć‚ø惜惃ć‚Æć‚¹ć‚’č”Øē¤ŗ恕恛悋ćØ态恝恓恧惭惃ć‚ÆćŒč§£é™¤ć•ć‚Œć¦ć—ć¾ć„ć¾ć™ć®ć§ć€ę³Øꄏ恌åæ…要恧恙怂

関連ćƒŖćƒ³ć‚Æ

å…±ęœ‰ć—ć¦ćæ悋ļ¼š

ęŽ’ä»–åˆ¶å¾”ć§Google Apps Scriptć‚’å®‰å…Øć«å®Ÿč”Œ” 恫åÆ¾ć—ć¦10ä»¶ć®ć‚³ćƒ”ćƒ³ćƒˆćŒć‚ć‚Šć¾ć™ć€‚

  1. aaaa 悈悊:

    //30ē§’é–“ć®ćƒ­ćƒƒć‚Æć‚’å®Ÿę–½

    恓悌ćÆćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć«åÆ¾ć—ć¦30ē§’é–“ćƒ­ćƒƒć‚Æć™ć‚‹ć®ć‹ć€ćć‚ŒćØ悂惭惃ć‚Æć‚’å–å¾—ć™ć‚‹ćŸć‚ć«ęœ€å¤§30ē§’é–“å¾…ć¤ć®ć‹ć‚ć‹ć‚Šć«ćć„ć§ć™ć€‚

    1. akanemaru2017 悈悊:

      惭惃ć‚ÆćÆ30ē§’é–“ć€åˆć‚ć«å–å¾—ć—ćŸäŗŗ恌30ē§’é–“ćƒ­ćƒƒć‚Æ恕恛悋悂恮恧恙怂他恮äŗŗćÆęœ€å¤§30ē§’é–“å¾…ć”ć¾ć™ć€‚ćć‚ŒćŒęŽ’ä»–åˆ¶å¾”ć§ć™ć€‚
      ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć«ęŽ›ć‘ć‚‹ć®ć‹ć©ć†ć‹ćÆć€å–å¾—ć™ć‚‹Lockserviceć®å†…å®¹ć«ć‚ˆć‚Šć¾ć™ć€‚

      ć¾ćŸć€tryćŖ恮恋waitćŖ恮恋恧30ē§’ć‚’ēµŒéŽć—ćŸå “åˆć®ćƒ¦ćƒ¼ć‚¶ćø恮čæ”ć—ę–¹ćÆ恓ćØćŖć£ć¦ćć¾ć™ć€‚

  2. Chihiro Fukazawa 悈悊:

    ć„ć¤ć‚‚å‚č€ƒć«ć•ć›ć¦ć‚‚ć‚‰ć£ć¦ć¾ć™ļ¼å¤ć„čؘäŗ‹ć«ć‚³ćƒ”ćƒ³ćƒˆå¤±ē¤¼ć—ć¾ć™ļ¼ć‚‚恗恋恗恦GASć‚ć‚‹ć‚ć‚‹ć§ä»•ę§˜ćŒå¤‰ć‚ć£ćŸć‹ć‚‚ć—ć‚Œć¾ć›ć‚“ćŒć€ä¾‹å¤–ć‚’ć‚¹ćƒ­ćƒ¼ć™ć‚‹ć®ćÆwaitLock恠恑恧态tryLockćÆčæ”ć‚Šå€¤ć§å¤±ę•—ēŠ¶ę…‹ć‚’čæ”ć™ć ć‘ć®ć‚ˆć†ć§ć™ļ¼
    https://developers.google.com/apps-script/reference/lock/lock#tryLock(Integer)

  3. 恂恍 悈悊:

    å¤§å¤‰å‹‰å¼·ć«ćŖć‚Šć¾ć™ć€‚
    ꜉ē›ŠćŖčؘäŗ‹ć‚’ć‚ć‚ŠćŒćØć†ć”ć–ć„ć¾ć™ć€å‚č€ƒć«ć•ć›ć¦ć„ćŸć ćć¾ć™ć€‚

    1. akanemaru2017 悈悊:

      ć„ćˆć„ćˆć€‚ęŽ’ä»–åˆ¶å¾”ćÆēµę§‹ä½æć†ć‚·ćƒ¼ćƒ³ćŒå¤šć„ć®ć§ć€ć”ę“»ē”Ø恏恠恕恄怂
      ē‰¹ć«ē”³č«‹ćƒ•ć‚©ćƒ¼ćƒ ć®ć‚ˆć†ćŖäøē‰¹å®šå¤šę•°ćŒåŒę™‚ć«åˆ©ē”Øć™ć‚‹ć‚·ćƒ¼ćƒ³ć§ćÆåæ…é ˆć§ć™ć­ć€‚

ć‚³ćƒ”ćƒ³ćƒˆć‚’ę®‹ć™

ćƒ”ćƒ¼ćƒ«ć‚¢ćƒ‰ćƒ¬ć‚¹ćŒå…¬é–‹ć•ć‚Œć‚‹ć“ćØćÆć‚ć‚Šć¾ć›ć‚“ć€‚ * ćŒä»˜ć„ć¦ć„ć‚‹ę¬„ćÆåæ…須項ē›®ć§ć™

ć“ć®ć‚µć‚¤ćƒˆćÆć‚¹ćƒ‘ćƒ ć‚’ä½Žęø›ć™ć‚‹ćŸć‚ć« Akismet 悒ä½æć£ć¦ć„ć¾ć™ć€‚ć‚³ćƒ”ćƒ³ćƒˆćƒ‡ćƒ¼ć‚æć®å‡¦ē†ę–¹ę³•ć®č©³ē“°ćÆć“ć”ć‚‰ć‚’ć”č¦§ćć ć•ć„ć€‚