Data Subscriptions: Maintenance Operations
-
This article covers data subscriptions maintenance operations.
-
In this page:
Delete subscription
Subscription tasks can be entirely deleted from the system.
await documentStore.subscriptions.delete("subscriptionNameToDelete");
// Available overloads:
delete(name);
delete(name, database);
Disable subscription
Existing subscription tasks can be disabled from the client.
await documentStore.subscriptions.disable("subscriptionNameToDisable");
// Available overloads:
disable(name);
disable(name, database);
Enable subscription
Existing subscription tasks can be enabled from the client.
This operation can be useful for already disabled subscriptions.
await documentStore.subscriptions.enable("subscriptionNameToEnable");
// Available overloads:
enable(name);
enable(name, database);
Update subscription
See examples and API description.
const updateOptions = {
id: "<theSubscriptionId>",
query: "<theSubscriptionQuery>"
// ...
}
await documentStore.subscriptions.update(updateOptions);
// Available overloads:
update(options);
update(options, database);
Drop connection
Active subscription connections established by workers can be dropped remotely from the client.
Once dropped, the worker will not attempt to reconnect to the server.
// Drop all connections to the subscription:
// =========================================
await documentStore.subscriptions.dropConnection("subscriptionName");
// Drop specific worker connection:
// ===============================
const workerOptions = {
subscriptionName: "subscriptionName",
// ...
};
const worker = documentStore.subscriptions.getSubscriptionWorker(workerOptions);
worker.on("batch", (batch, callback) => {
// worker processing logic
});
await documentStore.subscriptions.dropConnection(worker);
// Available overloads:
dropConnection(options);
dropConnection(options, database);
dropSubscriptionWorker(worker);
dropSubscriptionWorker(worker, database);
Get subscriptions
Get a list of all existing subscription tasks in the database.
const subscriptions = await documentStore.subscriptions.getSubscriptions(0, 10);
// Available overloads:
getSubscriptions(start, take);
getSubscriptions(start, take, database);
Get subscription state
const subscriptionState =
await documentStore.subscriptions.getSubscriptionState("subscriptionName");
// Available overloads:
getSubscriptionState(subscriptionName);
getSubscriptionState(subscriptionName, database);
SubscriptionState
Member | Type | Description | |
---|---|---|---|
query | string |
Subscription's RQL like query. | |
lastBatchAckTime | string |
Last time a batch processing progress was acknowledged. | |
nodeTag | string |
Processing server's node tag. | |
mentorNode | string |
The mentor node that was manually set. | |
subscriptionName | string |
The subscription's name, which is also its unique identifier. | |
subscriptionId | number |
Subscription's internal identifier (cluster's operation etag during subscription creation). | |
changeVectorForNextBatchStartingPoint | string |
The Change Vector from which the subscription will begin sending documents. This value is updated on batch acknowledgement and can also be set manually. |
|
disabled | boolean |
If true , subscription will not allow workers to connect. |
|
lastClientConnectionTime | string |
Time when last client was connected (value sustained after disconnection). |
DocumentSubscriptions class
The DocumentSubscriptions
class manages all interaction with the data subscriptions.
The class is available through the subscriptions
property in the documentStore
.
Method Signature | Return type | Description |
---|---|---|
create(options) | Promise<string> |
Create a new data subscription. |
create(options, database) | Promise<string> |
Create a new data subscription. |
create(documentType) | Promise<string> |
Create a new data subscription. |
create(optionsOrDocumentType, database) | Promise<string> |
Create a new data subscription. |
createForRevisions(options) | Promise<string> |
Create a new data subscription. |
createForRevisions(options, database) | Promise<string> |
Create a new data subscription. |
delete(name) | Promise<void> |
Delete subscription. |
delete(name, database) | Promise<void> |
Delete subscription. |
dropConnection(name) | Promise<void> |
Drop all existing subscription connections with workers. |
dropConnection(name, database) | Promise<void> |
Drop all existing subscription connections with workers. |
dropSubscriptionWorker(worker, database) | Promise<void> |
Drop an existing subscription connection with a worker. |
enable(name) | Promise<void> |
Enable existing subscription. |
enable(name, database) | Promise<void> |
Enable existing subscription. |
disable(name) | Promise<void> |
Disable existing subscription. |
disable(name, database) | Promise<void> |
Disable existing subscription. |
update(updateOptions) | Promise<string> |
Update an existing data subscription. |
update(updateOptions, database) | Promise<string> |
Update an existing data subscription. |
getSubscriptions(start, take) | Promise<SubscriptionState[]> |
Returns subscriptions list. |
getSubscriptions(start, take, database) | Promise<SubscriptionState[]> |
Returns subscriptions list. |
getSubscriptionState(subscriptionName) | Promise<SubscriptionState> |
Get the state of a specific subscription. |
getSubscriptionState(subscriptionName, database) | Promise<SubscriptionState> |
Get the state of a specific subscription. |
getSubscriptionWorker(options) | SubscriptionWorker |
Generate a subscription worker. |
getSubscriptionWorker(options, database) | SubscriptionWorker |
Generate a subscription worker. |
getSubscriptionWorker(subscriptionName) | SubscriptionWorker |
Generate a subscription worker. |
getSubscriptionWorker(subscriptionName, database) | SubscriptionWorker |
Generate a subscription worker. |
getSubscriptionWorkerForRevisions(options) | SubscriptionWorker |
Generate a subscription worker for a revisions subscription. |
getSubscriptionWorkerForRevisions(options, database) | SubscriptionWorker |
Generate a subscription worker for a revisions subscription. |