# US 9,521,188 B1 · Scheduled execution of instances

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,521,188 B1
- Document ID: US9521188B1
- Status: Granted
- Kind: B1
- Application number: 13/788,234
- Filed: 2013-03-07
- Granted: 2016-12-13
- Earliest claimed: 2013-03-07
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Eric Paul Wei; Albert Park Niemoller; James Alfred Gordon Greenfield
- Web page: https://patentgrep.com/patent/US9521188B1

## CPC

- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06Q 30/08: Auctions
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- G06F 2009/45591: {Monitoring or debugging support}
- H04L 67/00: Network arrangements or protocols for supporting network services or applications (user-to-user messaging H04L51/00; network arrangements, protocols or services for supporting real-time applications in data packet communications networks H04L65/00)
- H04L 69/329: in the application layer [OSI layer 7]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

Techniques are disclosed for a client-and-server architecture where the client makes scheduled execution of instances to the server. The server may then launch occurrences as indicated by one of these API calls at each of the scheduled times. The server may also implement operations to selectively execute particular occurrences, such as executing a new occurrence only when no other occurrences are still running. In other embodiments, the server may implement pricing information in a determination of whether to execute a particular occurrence.

## Claims

### Claim 1

A non-transitory computer-readable storage medium bearing computer-executable instructions that, when executed upon a computer, cause the computer to perform operations comprising:
receiving an indication of an action to perform from a client computing device across a communications network, the action comprising launching a virtual machine instance by instantiating the virtual machine;
receiving an indication of a periodic time at which to perform the action;
beginning to perform a first occurrence of the action upon reaching a first time indicated by the periodic time;
beginning to perform a second occurrence of the action in accordance with one or more constraints expressed in a policy upon reaching a second time indicated by the periodic time;
receiving a price at which occurrences of the action may be performed; and
wherein beginning to perform the second occurrence of the action comprises beginning to perform the second occurrence of the action in response to determining that a current price is less than the price at which occurrences of the action may be performed.

### Claim 2 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, further bearing computer-executable instructions that, when executed upon a computer, cause the computer to perform operations comprising:
receiving a maximum price at which occurrences of the action may be performed; and
after beginning to perform the second occurrence of the action, and in response to determining that the current spot price is now above the maximum price, ending performing the second occurrence of the action.

### Claim 3 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, further bearing computer-executable instructions that, when executed upon a computer, cause the computer to perform operations comprising:
receiving an indication of a maximum frequency at which occurrences of the action may run; and
wherein beginning to perform the second occurrence of the action comprises beginning to perform the second occurrence of the action in response to determining that beginning to perform the second occurrence of the action would not exceed the maximum frequency at which occurrences of the action may be run.

### Claim 4 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, further bearing computer-executable instructions that, when executed upon a computer, cause the computer to perform operations comprising:
in response to reaching a third time indicated by the periodic time, and upon determining that the second occurrence of the action is still being performed, determining not to begin performing a third occurrence of the action at the third time.

### Claim 5 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, further bearing computer-executable instructions that, when executed upon a computer, cause the computer to perform operations comprising:
determining whether performing the first and second occurrences of the action succeeded or failed; and
selecting a first computer of a plurality of computers on which to perform a third occurrence of the action based on whether performing the first and second occurrences of the action succeeded or failed.

### Claim 6 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, wherein the indication of an action and the periodic time at which to perform the action are embedded in a hypertext transfer protocol (HTTP) or hypertext transfer protocol secure (HTTPS) uniform resource locator (URL).

### Claim 7 (depends on 6)

The non-transitory computer-readable storage medium of claim 6, wherein the indication of the action and the periodic time comprise at least a part of a query string of the URL.

### Claim 8 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, wherein a constraint expressed in the policy relates to a maximum number of concurrent occurrences of the action and wherein beginning to perform the second occurrence of the action in accordance with the one or more constraints expressed in the policy further comprises:
determining whether a maximum number of concurrent occurrences of the action are still being performed.

### Claim 9

A system, comprising:
a memory bearing instructions that, upon execution by a processor, cause the system to at least:
receive an indication of an action to perform from a client computing device across a communications network, the action comprising launching a virtual machine instance;
receive an indication of a periodic time at which to perform the action;
begin to perform a first occurrence of the action upon reaching a first time indicated by the periodic time;
begin to perform a second occurrence of the action upon reaching a second time indicated by the periodic time, and consulting a policy to determine whether to start the second occurrence of the action at the second time;
receive a price at which an occurrence of the action may be performed; and
begin to perform the second occurrence of the action in response to determining that a current price for processing resources is less than the price at which occurrences of the action may be performed.

### Claim 10 (depends on 9)

The system of claim 9, wherein the memory further bears instructions that, upon execution by the processor, cause the system to at least:
receive an indication of a periodic time at which to end the action; and
end performing the second occurrence of the action upon reaching a time indicated by the periodic time at which to end the action.

### Claim 11 (depends on 9)

The system of claim 9, wherein the memory further bears instructions that, upon execution by the processor, cause the system to at least:
in response to determining that the second occurrence of the action has run for a threshold amount of time, terminating and retrying the second occurrence of the action.

### Claim 12 (depends on 11)

The system of claim 11, wherein the memory further bears instructions that, upon execution by the processor, cause the system to at least:
determining the threshold amount of time based how long it has taken to perform occurrences of the action in the past.

### Claim 13 (depends on 9)

The system of claim 9, wherein the memory further bears instructions that, upon execution by the processor, cause the system to at least:
in response to determining that the second occurrence of the action has run for a threshold amount of time, and in response to determining that a maximum number of attempts to perform the second occurrence of the action has been reached, determining not to retry to perform the second occurrence of the action again.

### Claim 14 (depends on 9)

The system of claim 9, wherein the instructions that, upon execution by the processor, cause the system to at least consult the policy to determine whether to start the second occurrence of the action at the second time comprises further cause the system to at least:
determine whether a maximum number of occurrences of the action are still operating, or determining whether the first occurrence of the action is still operating.
