Package

com.google.appsscript

lock

Permalink

package lock

Visibility
  1. Public
  2. All

Type Members

  1. trait Lock extends Object

    Permalink

    Lock A representation of a mutual-exclusion lock.

    Lock A representation of a mutual-exclusion lock. This class allows scripts to make sure that only one instance of the script is executing a given section of code at a time. This is particularly useful for callbacks and triggers, where a user action may cause changes to a shared resource and you want to ensure that aren't collisions. The following examples shows how to use a lock in a form submit handler.

    // Generates a unique ticket number for every form submission. function onFormSubmit(e) { var targetCell = e.range.offset(0, e.range.getNumColumns(), 1, 1);

    // Get a script lock, because we're about to modify a shared resource. var lock = LockService.getScriptLock(); // Wait for up to 30 seconds for other processes to finish. lock.waitLock(30000);

    var ticketNumber = Number(ScriptProperties.getProperty('lastTicketNumber')) + 1; ScriptProperties.setProperty('lastTicketNumber', ticketNumber);

    // Release the lock so that other processes can continue. lock.releaseLock();

    targetCell.setValue(ticketNumber); }

    Without the LockService, if two users submit the form at approximately the same time the ticket numbers could end up the same, since the lastTicketNumber property could change after it was read from the ScriptProperties but before the new value was written back.

    Annotations
    @RawJSType()
  2. trait LockService extends Object

    Permalink

    LockService Prevents concurrent access to sections of code.

    LockService Prevents concurrent access to sections of code. This can be useful when you have multiple users or processes modifying a shared resource and want to prevent collisions.

    Annotations
    @RawJSType()

Ungrouped