Throttle workflow events
@dylburger
code:
data:privatelast updated:4 years ago
today
Build integrations remarkably fast!
You're viewing a public workflow template.
Sign up to customize, add steps, modify code and more.
Join 1,000,000+ developers using the Pipedream platform
steps.
trigger
inactive
last updated:-last event:-
steps.
check_last_execution_and_exit_early
auth
to use OAuth tokens and API keys in code via theauths object
code
Write any Node.jscodeand use anynpm package. You can alsoexport datafor use in later steps via return or this.key = 'value', pass input data to your code viaparams, and maintain state across executions with$checkpoint.
async (event, steps) => {
1
2
3
4
5
6
7
8
9
10
11
12
}
13
const startTs = +new Date()
const lastExecutionTs = $checkpoint
// If we receive a flood of events, they should be emitted one
// after another accordingly to our throttling rules. Stop these
// invocations as soon as we detect this case.
if (lastExecutionTs && (startTs - lastExecutionTs) < 60000) {
  $end("Not running workflow. Too soon since last event")
}

// Save the current execution ts to $checkpoint
$checkpoint = startTs