| await | R Documentation | 
await repeatedly calls a Civis API endpoint such as scripts_get_sql_runs
that monitors the status of a script, job, import, or model. It blocks until the function
returns a result with a successful or error status.
If the script, job, import or model results in an error state,
await throws an error with useful debugging information.
await_all is a vectorized version of await. It repeatedly calls a Civis API endpoint for
all values of a vector, e.g. a vector of script, job, import, run, or model ids. It blocks until
all calls have returned a result with a given status, and silently captures jobs that return
errors.
await(
  f,
  ...,
  .status_key = "state",
  .success_states = c("succeeded", "success"),
  .error_states = c("failed", "cancelled"),
  .timeout = NULL,
  .interval = getOption("civis.default_polling_interval"),
  .verbose = FALSE
)
await_all(
  f,
  .x,
  .y = NULL,
  ...,
  .status_key = "state",
  .success_states = c("succeeded", "success"),
  .error_states = c("failed", "cancelled"),
  .timeout = NULL,
  .interval = NULL,
  .verbose = FALSE
)
| f | function to be called repeatedly until a status is reached. | 
| ... | arguments to  | 
| .status_key | The name of the element of the list returned by  | 
| .success_states | list of states indicating remote work has completed successfully.
For most Civis API endpoints, this set of states is the default,  | 
| .error_states | list of states indicating remote work is in an error state. For most Civis
API endpoints, this set of states is the default,  | 
| .timeout | Number of seconds after which to timeout. | 
| .interval | The interval for retries (in seconds). If  | 
| .verbose | Print the status of  | 
| .x | a vector of values to be passed to  | 
| .y | a vector of values to be passed to  | 
await and await_all can wrap Civis API endpoints in generated_client.R.
The default values for .status_key, .success_states, and .error_states
are suitable for most endpoints. The final status of f can be obtained using
get_status.
If an error state is reached, await throws a civis_await_error.
await_all silently captures and returns a civis_await_error for any job
reaching an error state as an element in the list of results.
If .timeout is specified and the job fails to reach a success state
within the time limit, await throws a civis_timeout_error.
Likewise, await_all throws a civis_timeout_error if all jobs fail to
reach a success state within the time limit.
These errors can be caught using try or tryCatch.
Useful debugging information can be returned using get_error and fetch_logs.
The set of possible states for jobs on Civis platform are:
"succeeded", "success", "failed", "queued", "running",
and "cancelled".
Unless .interval is specified, retries are attempted with exponentially increasing intervals using
.25 * (1.2^i)) + runif(1, 0, .2), where i is the index of the current retry.
Approximate intervals for a given number of retries are as follows:
1-5: .5s
6-10: 1-5s
11-19: 5-10s
20-29: 10s - 1m
The polling interval can be set to a fixed value globally with
options("civis.default_polling_interval" = INTERVAL_IN_SECONDS).
await_all(): Call a function repeatedly for all values of a vector until all have reached a completed status
get_status, get_error, fetch_logs
## Not run: 
   # Executing a query
   q_id <- queries_post(db_id, query, n_rows, cred_id)[["id"]]
   r <- await(queries_get, id = q_id)
   get_status(r)
   r <- tryCatch(await(queries_get, id = q_id), error = function(e) e)
   get_error(r)
   r <- try(await(queries_get, id = q_id))
   get_error(r)
   jobs <- c(1234, 5678)
   runs <- c(1234, 5678)
   rs <- await_all(scripts_get_r_runs, .x = jobs, .y = runs)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.