Documentation
¶
Overview ¶
Package rangedb is an endpoint for rangedb. See bitbucket.org/pcas/irange.
Types ¶
First we describe the JSON types specific to this endpoint.
Connection ¶
The Connection object describes the connection details to rangedb:
{
"Address": string
}
Any values set in Connection are optional; they overwrite the default Connection values for the endpoint. The default values can be obtained via the "defaults" operation. For a description of the meaning of these settings, see bitbucket.org/pcas/irange/rangedb.
Interval ¶
An Interval is defined by the JSON:
integer|[integer, integer]
In the second case, the integers [a, b] must satisfy a <= b. An Interval is used to encode an bitbucket.org/pcas/irange.Interval.
Range ¶
A Range can be defined by the JSON:
string
Here the string is of the form:
"[A,B,...,C]"
where each of A, B, ..., C are either integers or substrings of the form "E..F" where E and F are integers. (Note that '[' and ']' are part of the string defining the range, and are required.) Alternatively, a Range can be defined by the JSON:
[Interval, ..., Interval]
A Range is used to encode an bitbucket.org/pcas/irange.Range.
Operations ¶
Now we describe the operations permitted by this endpoint.
defaults ¶
The Arguments are empty. The Result is of the form:
{
"Connection": Connection
}
The result describes the default connection values.
next ¶
The Arguments are of the form:
{
"Connection: Connection,
"Name": string, // required
"AppName": string
}
This will fetch a new entry from the range with given name. The Result is of the form:
{
"ID": ULID,
"Value": integer,
"Deadline": integer,
"Failures": integer
}
The result will be empty if the end of iteration has been reached. Here Deadline is given by the nanoseconds elapsed since January 1, 1970 UTC (i.e. as a Unix time). For details of the meaning of these values see bitbucket.org/pcas/irange.
success ¶
The Arguments are of the form:
{
"ID": ULID // required
}
This will mark the entry with the given ID as having succeeded. The Result is empty.
error ¶
The Arguments are of the form:
{
"ID": ULID // required
}
This will mark the entry with the given ID as having dropped into an error state. The Result is empty.
requeue ¶
The Arguments are of the form:
{
"ID": ULID // required
}
This will requeue the entry with the given ID. The Result is empty.
fatal ¶
The Arguments are of the form:
{
"ID": ULID // required
}
This will mark the entry with the given ID as having dropped into a fatal error state. The Result is empty.
list ¶
The Arguments are of the form:
{
"Connection": Connection
}
This returns the names of all registered ranges. The Result is of the form:
{
"Names": [string, ..., string]
}
create ¶
The Arguments are of the form:
{
"Connection: Connection,
"Name": string, // required
"Range": Range, // required
"Lifetime": Duration, // required
"MaxRetries": integer,
"MaxConcurrency": integer
}
This will create a new range with given values. The duration Lifetime must be non-negative. The Result is empty.
delete ¶
The Arguments are of the form:
{
"Connection": Connection,
"Name": string // required
}
This deletes the range with the given name. The Result is empty.
status ¶
The Arguments are of the form:
{
"Connection": Connection,
"Name": string // required
}
This returns information about the status of the range with the given name. The Result is of the form:
{
"Pending": Range,
"Active": Range,
"Succeeded": Range,
"Failed": Range
}
This describes an bitbucket.org/pcas/irange.Status object.
info ¶
The Arguments are of the form:
{
"Connection": Connection,
"Name": string, // required
"Entry": integer // required
}
This returns information about the given entry in the range with the given name. The Result is of the form:
{
"Value": integer,
"State": string,
"AppName": string,
"Hostname": string,
"Start": integer,
"Deadline": integer,
"Failures": integer
}
This describes an bitbucket.org/pcas/irange.Info object. Here State is one of "uninitialised", "pending", "active", "succeeded", or "failed"; Start and Deadline are given by the nanoseconds elapsed since January 1, 1970 UTC (i.e. as a Unix time). For details of the meaning of these values see bitbucket.org/pcas/irange.