apify-client 2.20.1-beta.6 → 2.20.1-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/apify_client.d.ts +237 -25
- package/dist/apify_client.d.ts.map +1 -1
- package/dist/apify_client.js +234 -25
- package/dist/apify_client.js.map +1 -1
- package/dist/bundle.js +2042 -253
- package/dist/bundle.js.map +1 -1
- package/dist/resource_clients/actor.d.ts +322 -31
- package/dist/resource_clients/actor.d.ts.map +1 -1
- package/dist/resource_clients/actor.js +167 -19
- package/dist/resource_clients/actor.js.map +1 -1
- package/dist/resource_clients/actor_collection.d.ts +34 -3
- package/dist/resource_clients/actor_collection.d.ts.map +1 -1
- package/dist/resource_clients/actor_collection.js +34 -3
- package/dist/resource_clients/actor_collection.js.map +1 -1
- package/dist/resource_clients/actor_env_var.d.ts +34 -3
- package/dist/resource_clients/actor_env_var.d.ts.map +1 -1
- package/dist/resource_clients/actor_env_var.js +34 -3
- package/dist/resource_clients/actor_env_var.js.map +1 -1
- package/dist/resource_clients/actor_env_var_collection.d.ts +37 -3
- package/dist/resource_clients/actor_env_var_collection.d.ts.map +1 -1
- package/dist/resource_clients/actor_env_var_collection.js +37 -3
- package/dist/resource_clients/actor_env_var_collection.js.map +1 -1
- package/dist/resource_clients/actor_version.d.ts +42 -6
- package/dist/resource_clients/actor_version.d.ts.map +1 -1
- package/dist/resource_clients/actor_version.js +42 -6
- package/dist/resource_clients/actor_version.js.map +1 -1
- package/dist/resource_clients/actor_version_collection.d.ts +35 -3
- package/dist/resource_clients/actor_version_collection.d.ts.map +1 -1
- package/dist/resource_clients/actor_version_collection.js +35 -3
- package/dist/resource_clients/actor_version_collection.js.map +1 -1
- package/dist/resource_clients/build.d.ts +123 -11
- package/dist/resource_clients/build.d.ts.map +1 -1
- package/dist/resource_clients/build.js +93 -11
- package/dist/resource_clients/build.js.map +1 -1
- package/dist/resource_clients/build_collection.d.ts +27 -2
- package/dist/resource_clients/build_collection.d.ts.map +1 -1
- package/dist/resource_clients/build_collection.js +27 -2
- package/dist/resource_clients/build_collection.js.map +1 -1
- package/dist/resource_clients/dataset.d.ts +221 -15
- package/dist/resource_clients/dataset.d.ts.map +1 -1
- package/dist/resource_clients/dataset.js +185 -15
- package/dist/resource_clients/dataset.js.map +1 -1
- package/dist/resource_clients/dataset_collection.d.ts +32 -3
- package/dist/resource_clients/dataset_collection.d.ts.map +1 -1
- package/dist/resource_clients/dataset_collection.js +32 -3
- package/dist/resource_clients/dataset_collection.js.map +1 -1
- package/dist/resource_clients/key_value_store.d.ts +219 -26
- package/dist/resource_clients/key_value_store.d.ts.map +1 -1
- package/dist/resource_clients/key_value_store.js +172 -25
- package/dist/resource_clients/key_value_store.js.map +1 -1
- package/dist/resource_clients/key_value_store_collection.d.ts +32 -3
- package/dist/resource_clients/key_value_store_collection.d.ts.map +1 -1
- package/dist/resource_clients/key_value_store_collection.js +32 -3
- package/dist/resource_clients/key_value_store_collection.js.map +1 -1
- package/dist/resource_clients/log.d.ts +34 -3
- package/dist/resource_clients/log.d.ts.map +1 -1
- package/dist/resource_clients/log.js +34 -3
- package/dist/resource_clients/log.js.map +1 -1
- package/dist/resource_clients/request_queue.d.ts +290 -19
- package/dist/resource_clients/request_queue.d.ts.map +1 -1
- package/dist/resource_clients/request_queue.js +233 -19
- package/dist/resource_clients/request_queue.js.map +1 -1
- package/dist/resource_clients/request_queue_collection.d.ts +31 -3
- package/dist/resource_clients/request_queue_collection.d.ts.map +1 -1
- package/dist/resource_clients/request_queue_collection.js +31 -3
- package/dist/resource_clients/request_queue_collection.js.map +1 -1
- package/dist/resource_clients/run.d.ts +224 -27
- package/dist/resource_clients/run.d.ts.map +1 -1
- package/dist/resource_clients/run.js +200 -27
- package/dist/resource_clients/run.js.map +1 -1
- package/dist/resource_clients/run_collection.d.ts +27 -2
- package/dist/resource_clients/run_collection.d.ts.map +1 -1
- package/dist/resource_clients/run_collection.js +27 -2
- package/dist/resource_clients/run_collection.js.map +1 -1
- package/dist/resource_clients/schedule.d.ts +65 -4
- package/dist/resource_clients/schedule.d.ts.map +1 -1
- package/dist/resource_clients/schedule.js +42 -4
- package/dist/resource_clients/schedule.js.map +1 -1
- package/dist/resource_clients/schedule_collection.d.ts +35 -3
- package/dist/resource_clients/schedule_collection.d.ts.map +1 -1
- package/dist/resource_clients/schedule_collection.js +35 -3
- package/dist/resource_clients/schedule_collection.js.map +1 -1
- package/dist/resource_clients/store_collection.d.ts +26 -2
- package/dist/resource_clients/store_collection.d.ts.map +1 -1
- package/dist/resource_clients/store_collection.js +26 -2
- package/dist/resource_clients/store_collection.js.map +1 -1
- package/dist/resource_clients/task.d.ts +110 -11
- package/dist/resource_clients/task.d.ts.map +1 -1
- package/dist/resource_clients/task.js +83 -11
- package/dist/resource_clients/task.js.map +1 -1
- package/dist/resource_clients/task_collection.d.ts +35 -8
- package/dist/resource_clients/task_collection.d.ts.map +1 -1
- package/dist/resource_clients/task_collection.js +35 -8
- package/dist/resource_clients/task_collection.js.map +1 -1
- package/dist/resource_clients/user.d.ts +41 -4
- package/dist/resource_clients/user.d.ts.map +1 -1
- package/dist/resource_clients/user.js +41 -4
- package/dist/resource_clients/user.js.map +1 -1
- package/dist/resource_clients/webhook.d.ts +66 -5
- package/dist/resource_clients/webhook.d.ts.map +1 -1
- package/dist/resource_clients/webhook.js +48 -5
- package/dist/resource_clients/webhook.js.map +1 -1
- package/dist/resource_clients/webhook_collection.d.ts +34 -3
- package/dist/resource_clients/webhook_collection.d.ts.map +1 -1
- package/dist/resource_clients/webhook_collection.js +34 -3
- package/dist/resource_clients/webhook_collection.js.map +1 -1
- package/dist/resource_clients/webhook_dispatch.d.ts +22 -1
- package/dist/resource_clients/webhook_dispatch.d.ts.map +1 -1
- package/dist/resource_clients/webhook_dispatch.js +22 -1
- package/dist/resource_clients/webhook_dispatch.js.map +1 -1
- package/dist/resource_clients/webhook_dispatch_collection.d.ts +24 -2
- package/dist/resource_clients/webhook_dispatch_collection.d.ts.map +1 -1
- package/dist/resource_clients/webhook_dispatch_collection.js +24 -2
- package/dist/resource_clients/webhook_dispatch_collection.js.map +1 -1
- package/dist/utils.d.ts +42 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,36 @@
|
|
|
1
1
|
import type { STORAGE_GENERAL_ACCESS } from '@apify/consts';
|
|
2
2
|
import type { ApiClientSubResourceOptions } from '../base/api_client';
|
|
3
3
|
import { ResourceClient } from '../base/resource_client';
|
|
4
|
+
/**
|
|
5
|
+
* Client for managing a specific Request queue.
|
|
6
|
+
*
|
|
7
|
+
* Request queues store URLs to be crawled and their metadata. Each request in the queue has a unique ID
|
|
8
|
+
* and can be in various states (pending, handled). This client provides methods to add, get, update,
|
|
9
|
+
* and delete requests, as well as manage the queue itself.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```javascript
|
|
13
|
+
* const client = new ApifyClient({ token: 'my-token' });
|
|
14
|
+
* const queueClient = client.requestQueue('my-queue-id');
|
|
15
|
+
*
|
|
16
|
+
* // Add a request to the queue
|
|
17
|
+
* await queueClient.addRequest({
|
|
18
|
+
* url: 'https://example.com',
|
|
19
|
+
* uniqueKey: 'example-com'
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* // Get the next request from the queue
|
|
23
|
+
* const request = await queueClient.listHead();
|
|
24
|
+
*
|
|
25
|
+
* // Mark request as handled
|
|
26
|
+
* await queueClient.updateRequest({
|
|
27
|
+
* id: request.id,
|
|
28
|
+
* handledAt: new Date().toISOString()
|
|
29
|
+
* });
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @see https://docs.apify.com/platform/storage/request-queue
|
|
33
|
+
*/
|
|
4
34
|
export declare class RequestQueueClient extends ResourceClient {
|
|
5
35
|
private clientKey?;
|
|
6
36
|
private timeoutMillis?;
|
|
@@ -9,83 +39,276 @@ export declare class RequestQueueClient extends ResourceClient {
|
|
|
9
39
|
*/
|
|
10
40
|
constructor(options: ApiClientSubResourceOptions, userOptions?: RequestQueueUserOptions);
|
|
11
41
|
/**
|
|
12
|
-
*
|
|
42
|
+
* Gets the Request queue object from the Apify API.
|
|
43
|
+
*
|
|
44
|
+
* @returns The RequestQueue object, or `undefined` if it does not exist
|
|
45
|
+
* @see https://docs.apify.com/api/v2/request-queue-get
|
|
13
46
|
*/
|
|
14
47
|
get(): Promise<RequestQueue | undefined>;
|
|
15
48
|
/**
|
|
16
|
-
*
|
|
49
|
+
* Updates the Request queue with specified fields.
|
|
50
|
+
*
|
|
51
|
+
* @param newFields - Fields to update in the Request queue
|
|
52
|
+
* @returns The updated RequestQueue object
|
|
53
|
+
* @see https://docs.apify.com/api/v2/request-queue-put
|
|
17
54
|
*/
|
|
18
55
|
update(newFields: RequestQueueClientUpdateOptions): Promise<RequestQueue>;
|
|
19
56
|
/**
|
|
20
|
-
*
|
|
57
|
+
* Deletes the Request queue.
|
|
58
|
+
*
|
|
59
|
+
* @see https://docs.apify.com/api/v2/request-queue-delete
|
|
21
60
|
*/
|
|
22
61
|
delete(): Promise<void>;
|
|
23
62
|
/**
|
|
24
|
-
*
|
|
63
|
+
* Lists requests from the beginning of the queue (head).
|
|
64
|
+
*
|
|
65
|
+
* Returns the first N requests from the queue without locking them. This is useful for
|
|
66
|
+
* inspecting what requests are waiting to be processed.
|
|
67
|
+
*
|
|
68
|
+
* @param options - Options for listing (e.g., limit)
|
|
69
|
+
* @returns List of requests from the queue head
|
|
70
|
+
* @see https://docs.apify.com/api/v2/request-queue-head-get
|
|
25
71
|
*/
|
|
26
72
|
listHead(options?: RequestQueueClientListHeadOptions): Promise<RequestQueueClientListHeadResult>;
|
|
27
73
|
/**
|
|
28
|
-
*
|
|
74
|
+
* Gets and locks the next requests from the queue head for processing.
|
|
75
|
+
*
|
|
76
|
+
* This method retrieves requests from the beginning of the queue and locks them for
|
|
77
|
+
* the specified duration to prevent other clients from processing them simultaneously.
|
|
78
|
+
* This is the primary method used by distributed web crawlers to coordinate work across
|
|
79
|
+
* multiple workers. Locked requests won't be returned to other clients until the lock expires
|
|
80
|
+
* or is explicitly released using {@link deleteRequestLock}.
|
|
81
|
+
*
|
|
82
|
+
* @param options - Lock configuration
|
|
83
|
+
* @param options.lockSecs - **Required.** Duration in seconds to lock the requests. After this time, the locks expire and requests can be retrieved by other clients.
|
|
84
|
+
* @param options.limit - Maximum number of requests to return. Default is 25.
|
|
85
|
+
* @returns Object containing `items` (locked requests), `queueModifiedAt`, `hadMultipleClients`, and lock information
|
|
86
|
+
* @see https://docs.apify.com/api/v2/request-queue-head-lock-post
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```javascript
|
|
90
|
+
* // Get and lock up to 10 requests for 60 seconds
|
|
91
|
+
* const { items, lockSecs } = await client.requestQueue('my-queue').listAndLockHead({
|
|
92
|
+
* lockSecs: 60,
|
|
93
|
+
* limit: 10
|
|
94
|
+
* });
|
|
95
|
+
*
|
|
96
|
+
* // Process each locked request
|
|
97
|
+
* for (const request of items) {
|
|
98
|
+
* console.log(`Processing: ${request.url}`);
|
|
99
|
+
* // ... process request ...
|
|
100
|
+
* // Delete lock after successful processing
|
|
101
|
+
* await client.requestQueue('my-queue').deleteRequestLock(request.id);
|
|
102
|
+
* }
|
|
103
|
+
* ```
|
|
29
104
|
*/
|
|
30
105
|
listAndLockHead(options: RequestQueueClientListAndLockHeadOptions): Promise<RequestQueueClientListAndLockHeadResult>;
|
|
31
106
|
/**
|
|
32
|
-
*
|
|
107
|
+
* Adds a single request to the queue.
|
|
108
|
+
*
|
|
109
|
+
* If a request with the same `uniqueKey` already exists, the method will return information
|
|
110
|
+
* about the existing request without adding a duplicate. The `uniqueKey` is used for
|
|
111
|
+
* deduplication - typically it's the URL, but you can use any string to identify the request.
|
|
112
|
+
*
|
|
113
|
+
* @param request - The request object to add (excluding `id`, which is assigned by the API)
|
|
114
|
+
* @param request.url - URL to be crawled
|
|
115
|
+
* @param request.uniqueKey - Unique identifier for request deduplication. If not provided, defaults to `url`.
|
|
116
|
+
* @param request.method - HTTP method. Default is `'GET'`.
|
|
117
|
+
* @param request.userData - Custom user data (arbitrary JSON object) associated with the request.
|
|
118
|
+
* @param request.headers - HTTP headers to use for the request.
|
|
119
|
+
* @param request.payload - HTTP payload for POST/PUT requests (string).
|
|
120
|
+
* @param options - Additional options
|
|
121
|
+
* @param options.forefront - If `true`, adds the request to the beginning of the queue. Default is `false` (adds to the end).
|
|
122
|
+
* @returns Object with `requestId`, `wasAlreadyPresent`, and `wasAlreadyHandled` flags
|
|
123
|
+
* @see https://docs.apify.com/api/v2/request-queue-requests-post
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```javascript
|
|
127
|
+
* const result = await client.requestQueue('my-queue').addRequest({
|
|
128
|
+
* url: 'https://example.com',
|
|
129
|
+
* uniqueKey: 'example-page',
|
|
130
|
+
* method: 'GET',
|
|
131
|
+
* userData: { label: 'START', depth: 0 }
|
|
132
|
+
* });
|
|
133
|
+
* console.log(`Request ID: ${result.requestId}`);
|
|
134
|
+
* console.log(`Already present: ${result.wasAlreadyPresent}`);
|
|
135
|
+
* console.log(`Already handled: ${result.wasAlreadyHandled}`);
|
|
136
|
+
*
|
|
137
|
+
* // Add urgent request to the front of the queue
|
|
138
|
+
* await client.requestQueue('my-queue').addRequest(
|
|
139
|
+
* { url: 'https://priority.com', uniqueKey: 'priority-page' },
|
|
140
|
+
* { forefront: true }
|
|
141
|
+
* );
|
|
142
|
+
* ```
|
|
33
143
|
*/
|
|
34
144
|
addRequest(request: Omit<RequestQueueClientRequestSchema, 'id'>, options?: RequestQueueClientAddRequestOptions): Promise<RequestQueueClientAddRequestResult>;
|
|
35
145
|
/**
|
|
36
|
-
* Writes requests to
|
|
146
|
+
* Writes requests to Request queue in batch.
|
|
37
147
|
*
|
|
38
148
|
* @private
|
|
39
149
|
*/
|
|
40
150
|
protected _batchAddRequests(requests: Omit<RequestQueueClientRequestSchema, 'id'>[], options?: RequestQueueClientAddRequestOptions): Promise<RequestQueueClientBatchRequestsOperationResult>;
|
|
41
151
|
protected _batchAddRequestsWithRetries(requests: Omit<RequestQueueClientRequestSchema, 'id'>[], options?: RequestQueueClientBatchAddRequestWithRetriesOptions): Promise<RequestQueueClientBatchRequestsOperationResult>;
|
|
42
152
|
/**
|
|
43
|
-
*
|
|
153
|
+
* Adds multiple requests to the queue in a single operation.
|
|
154
|
+
*
|
|
155
|
+
* This is significantly more efficient than calling {@link addRequest} multiple times, especially
|
|
156
|
+
* for large batches. The method automatically handles batching (max 25 requests per API call),
|
|
157
|
+
* retries on rate limiting, and parallel processing. Requests are sent in chunks respecting the
|
|
158
|
+
* API payload size limit, and any unprocessed requests due to rate limits are automatically
|
|
159
|
+
* retried with exponential backoff.
|
|
160
|
+
*
|
|
161
|
+
* @param requests - Array of request objects to add (excluding `id` fields)
|
|
162
|
+
* @param options - Batch operation configuration
|
|
163
|
+
* @param options.forefront - If `true`, adds all requests to the beginning of the queue. Default is `false`.
|
|
164
|
+
* @param options.maxUnprocessedRequestsRetries - Maximum number of retry attempts for rate-limited requests. Default is 3.
|
|
165
|
+
* @param options.maxParallel - Maximum number of parallel batch API calls. Default is 5.
|
|
166
|
+
* @param options.minDelayBetweenUnprocessedRequestsRetriesMillis - Minimum delay before retrying rate-limited requests. Default is 500ms.
|
|
167
|
+
* @returns Object with `processedRequests` (successfully added) and `unprocessedRequests` (failed after all retries)
|
|
168
|
+
* @see https://docs.apify.com/api/v2/request-queue-requests-batch-post
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```javascript
|
|
172
|
+
* // Add a batch of URLs to crawl
|
|
173
|
+
* const requests = [
|
|
174
|
+
* { url: 'https://example.com', uniqueKey: 'page1', userData: { depth: 1 } },
|
|
175
|
+
* { url: 'https://example.com/2', uniqueKey: 'page2', userData: { depth: 1 } },
|
|
176
|
+
* { url: 'https://example.com/3', uniqueKey: 'page3', userData: { depth: 1 } }
|
|
177
|
+
* ];
|
|
178
|
+
* const result = await client.requestQueue('my-queue').batchAddRequests(requests);
|
|
179
|
+
* console.log(`Successfully added: ${result.processedRequests.length}`);
|
|
180
|
+
* console.log(`Failed: ${result.unprocessedRequests.length}`);
|
|
181
|
+
*
|
|
182
|
+
* // Batch add with custom retry settings
|
|
183
|
+
* const result = await client.requestQueue('my-queue').batchAddRequests(
|
|
184
|
+
* requests,
|
|
185
|
+
* { maxUnprocessedRequestsRetries: 5, maxParallel: 10 }
|
|
186
|
+
* );
|
|
187
|
+
* ```
|
|
44
188
|
*/
|
|
45
189
|
batchAddRequests(requests: Omit<RequestQueueClientRequestSchema, 'id'>[], options?: RequestQueueClientBatchAddRequestWithRetriesOptions): Promise<RequestQueueClientBatchRequestsOperationResult>;
|
|
46
190
|
/**
|
|
47
|
-
*
|
|
191
|
+
* Deletes multiple requests from the queue in a single operation.
|
|
192
|
+
*
|
|
193
|
+
* Requests can be identified by either their ID or unique key.
|
|
194
|
+
*
|
|
195
|
+
* @param requests - Array of requests to delete (by id or uniqueKey)
|
|
196
|
+
* @returns Result containing processed and unprocessed requests
|
|
197
|
+
* @see https://docs.apify.com/api/v2/request-queue-requests-batch-delete
|
|
48
198
|
*/
|
|
49
199
|
batchDeleteRequests(requests: RequestQueueClientRequestToDelete[]): Promise<RequestQueueClientBatchRequestsOperationResult>;
|
|
50
200
|
/**
|
|
51
|
-
*
|
|
201
|
+
* Gets a specific request from the queue by its ID.
|
|
202
|
+
*
|
|
203
|
+
* @param id - Request ID
|
|
204
|
+
* @returns The request object, or `undefined` if not found
|
|
205
|
+
* @see https://docs.apify.com/api/v2/request-queue-request-get
|
|
52
206
|
*/
|
|
53
207
|
getRequest(id: string): Promise<RequestQueueClientGetRequestResult | undefined>;
|
|
54
208
|
/**
|
|
55
|
-
*
|
|
209
|
+
* Updates a request in the queue.
|
|
210
|
+
*
|
|
211
|
+
* @param request - The updated request object (must include id)
|
|
212
|
+
* @param options - Update options such as whether to move to front
|
|
213
|
+
* @returns Information about the updated request
|
|
214
|
+
* @see https://docs.apify.com/api/v2/request-queue-request-put
|
|
56
215
|
*/
|
|
57
216
|
updateRequest(request: RequestQueueClientRequestSchema, options?: RequestQueueClientAddRequestOptions): Promise<RequestQueueClientAddRequestResult>;
|
|
217
|
+
/**
|
|
218
|
+
* Deletes a specific request from the queue.
|
|
219
|
+
*
|
|
220
|
+
* @param id - Request ID
|
|
221
|
+
*/
|
|
58
222
|
deleteRequest(id: string): Promise<void>;
|
|
59
223
|
/**
|
|
60
|
-
*
|
|
224
|
+
* Prolongs the lock on a request to prevent it from being returned to other clients.
|
|
225
|
+
*
|
|
226
|
+
* This is useful when processing a request takes longer than expected and you need
|
|
227
|
+
* to extend the lock duration to prevent other workers from picking it up. The lock
|
|
228
|
+
* expiration time is reset to the current time plus the specified duration.
|
|
229
|
+
*
|
|
230
|
+
* @param id - Request ID (obtained from {@link listAndLockHead} or {@link getRequest})
|
|
231
|
+
* @param options - Lock extension options
|
|
232
|
+
* @param options.lockSecs - **Required.** New lock duration in seconds from now.
|
|
233
|
+
* @param options.forefront - If `true`, moves the request to the beginning of the queue when the lock expires. Default is `false`.
|
|
234
|
+
* @returns Object with new `lockExpiresAt` timestamp
|
|
235
|
+
* @see https://docs.apify.com/api/v2/request-queue-request-lock-put
|
|
236
|
+
*
|
|
237
|
+
* @example
|
|
238
|
+
* ```javascript
|
|
239
|
+
* // Lock request for initial processing
|
|
240
|
+
* const { items } = await client.requestQueue('my-queue').listAndLockHead({ lockSecs: 60, limit: 1 });
|
|
241
|
+
* const request = items[0];
|
|
242
|
+
*
|
|
243
|
+
* // Processing takes longer than expected, extend the lock
|
|
244
|
+
* await client.requestQueue('my-queue').prolongRequestLock(request.id, { lockSecs: 120 });
|
|
245
|
+
* ```
|
|
61
246
|
*/
|
|
62
247
|
prolongRequestLock(id: string, options: RequestQueueClientProlongRequestLockOptions): Promise<RequestQueueClientProlongRequestLockResult>;
|
|
63
248
|
/**
|
|
64
|
-
*
|
|
249
|
+
* Releases the lock on a request, allowing other clients to process it.
|
|
250
|
+
*
|
|
251
|
+
* This should be called after successfully processing a request or when you decide
|
|
252
|
+
* not to process it.
|
|
253
|
+
*
|
|
254
|
+
* @param id - Request ID
|
|
255
|
+
* @param options - Options such as whether to move to front
|
|
256
|
+
* @see https://docs.apify.com/api/v2/request-queue-request-lock-delete
|
|
65
257
|
*/
|
|
66
258
|
deleteRequestLock(id: string, options?: RequestQueueClientDeleteRequestLockOptions): Promise<void>;
|
|
67
259
|
/**
|
|
68
|
-
*
|
|
260
|
+
* Lists all requests in the queue.
|
|
261
|
+
*
|
|
262
|
+
* Returns a paginated list of all requests, allowing you to iterate through the entire
|
|
263
|
+
* queue contents.
|
|
264
|
+
*
|
|
265
|
+
* @param options - Pagination options
|
|
266
|
+
* @returns List of requests with pagination information
|
|
267
|
+
* @see https://docs.apify.com/api/v2/request-queue-requests-get
|
|
69
268
|
*/
|
|
70
269
|
listRequests(options?: RequestQueueClientListRequestsOptions): Promise<RequestQueueClientListRequestsResult>;
|
|
71
270
|
/**
|
|
72
|
-
*
|
|
271
|
+
* Unlocks all requests locked by this client.
|
|
272
|
+
*
|
|
273
|
+
* This is useful for releasing all locks at once, for example when shutting down
|
|
274
|
+
* a crawler gracefully.
|
|
275
|
+
*
|
|
276
|
+
* @returns Number of requests that were unlocked
|
|
277
|
+
* @see https://docs.apify.com/api/v2/request-queue-requests-unlock-post
|
|
73
278
|
*/
|
|
74
279
|
unlockRequests(): Promise<RequestQueueClientUnlockRequestsResult>;
|
|
75
280
|
/**
|
|
76
|
-
*
|
|
281
|
+
* Returns an async iterable for paginating through all requests in the queue.
|
|
282
|
+
*
|
|
283
|
+
* This allows you to efficiently process all requests using a for-await-of loop,
|
|
284
|
+
* automatically handling pagination behind the scenes.
|
|
285
|
+
*
|
|
286
|
+
* @param options - Pagination options
|
|
287
|
+
* @returns An async iterable of request pages
|
|
288
|
+
* @see https://docs.apify.com/api/v2/request-queue-requests-get
|
|
77
289
|
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
290
|
+
* @example
|
|
291
|
+
* ```javascript
|
|
292
|
+
* for await (const { items } of client.requestQueue('my-queue').paginateRequests({ limit: 100 })) {
|
|
293
|
+
* items.forEach((request) => console.log(request.url));
|
|
81
294
|
* }
|
|
295
|
+
* ```
|
|
82
296
|
*/
|
|
83
297
|
paginateRequests(options?: RequestQueueClientPaginateRequestsOptions): RequestQueueRequestsAsyncIterable<RequestQueueClientListRequestsResult>;
|
|
84
298
|
}
|
|
299
|
+
/**
|
|
300
|
+
* User-specific options for RequestQueueClient.
|
|
301
|
+
*/
|
|
85
302
|
export interface RequestQueueUserOptions {
|
|
86
303
|
clientKey?: string;
|
|
87
304
|
timeoutSecs?: number;
|
|
88
305
|
}
|
|
306
|
+
/**
|
|
307
|
+
* Represents a Request Queue storage on the Apify platform.
|
|
308
|
+
*
|
|
309
|
+
* Request queues store URLs (requests) to be processed by web crawlers. They provide
|
|
310
|
+
* automatic deduplication, request locking for parallel processing, and persistence.
|
|
311
|
+
*/
|
|
89
312
|
export interface RequestQueue {
|
|
90
313
|
id: string;
|
|
91
314
|
name?: string;
|
|
@@ -105,6 +328,9 @@ export interface RequestQueue {
|
|
|
105
328
|
stats: RequestQueueStats;
|
|
106
329
|
generalAccess?: STORAGE_GENERAL_ACCESS | null;
|
|
107
330
|
}
|
|
331
|
+
/**
|
|
332
|
+
* Statistics about Request Queue usage and storage.
|
|
333
|
+
*/
|
|
108
334
|
export interface RequestQueueStats {
|
|
109
335
|
readCount?: number;
|
|
110
336
|
writeCount?: number;
|
|
@@ -112,43 +338,72 @@ export interface RequestQueueStats {
|
|
|
112
338
|
headItemReadCount?: number;
|
|
113
339
|
storageBytes?: number;
|
|
114
340
|
}
|
|
341
|
+
/**
|
|
342
|
+
* Options for updating a Request Queue.
|
|
343
|
+
*/
|
|
115
344
|
export interface RequestQueueClientUpdateOptions {
|
|
116
345
|
name?: string | null;
|
|
117
346
|
title?: string;
|
|
118
347
|
generalAccess?: STORAGE_GENERAL_ACCESS | null;
|
|
119
348
|
}
|
|
349
|
+
/**
|
|
350
|
+
* Options for listing requests from the queue head.
|
|
351
|
+
*/
|
|
120
352
|
export interface RequestQueueClientListHeadOptions {
|
|
121
353
|
limit?: number;
|
|
122
354
|
}
|
|
355
|
+
/**
|
|
356
|
+
* Result of listing requests from the queue head.
|
|
357
|
+
*/
|
|
123
358
|
export interface RequestQueueClientListHeadResult {
|
|
124
359
|
limit: number;
|
|
125
360
|
queueModifiedAt: Date;
|
|
126
361
|
hadMultipleClients: boolean;
|
|
127
362
|
items: RequestQueueClientListItem[];
|
|
128
363
|
}
|
|
364
|
+
/**
|
|
365
|
+
* Options for listing all requests in the queue.
|
|
366
|
+
*/
|
|
129
367
|
export interface RequestQueueClientListRequestsOptions {
|
|
130
368
|
limit?: number;
|
|
131
369
|
exclusiveStartId?: string;
|
|
132
370
|
}
|
|
371
|
+
/**
|
|
372
|
+
* Options for paginating through requests in the queue.
|
|
373
|
+
*/
|
|
133
374
|
export interface RequestQueueClientPaginateRequestsOptions {
|
|
134
375
|
limit?: number;
|
|
135
376
|
maxPageLimit?: number;
|
|
136
377
|
exclusiveStartId?: string;
|
|
137
378
|
}
|
|
379
|
+
/**
|
|
380
|
+
* Result of listing all requests in the queue.
|
|
381
|
+
*/
|
|
138
382
|
export interface RequestQueueClientListRequestsResult {
|
|
139
383
|
limit: number;
|
|
140
384
|
exclusiveStartId?: string;
|
|
141
385
|
items: RequestQueueClientRequestSchema[];
|
|
142
386
|
}
|
|
387
|
+
/**
|
|
388
|
+
* Options for listing and locking requests from the queue head.
|
|
389
|
+
*/
|
|
143
390
|
export interface RequestQueueClientListAndLockHeadOptions {
|
|
144
391
|
lockSecs: number;
|
|
145
392
|
limit?: number;
|
|
146
393
|
}
|
|
394
|
+
/**
|
|
395
|
+
* Result of listing and locking requests from the queue head.
|
|
396
|
+
*
|
|
397
|
+
* Extends {@link RequestQueueClientListHeadResult} with lock information.
|
|
398
|
+
*/
|
|
147
399
|
export interface RequestQueueClientListAndLockHeadResult extends RequestQueueClientListHeadResult {
|
|
148
400
|
lockSecs: number;
|
|
149
401
|
queueHasLockedRequests: boolean;
|
|
150
402
|
clientKey: string;
|
|
151
403
|
}
|
|
404
|
+
/**
|
|
405
|
+
* Simplified request information used in list results.
|
|
406
|
+
*/
|
|
152
407
|
export interface RequestQueueClientListItem {
|
|
153
408
|
id: string;
|
|
154
409
|
retryCount: number;
|
|
@@ -176,6 +431,11 @@ export interface RequestQueueClientBatchAddRequestWithRetriesOptions {
|
|
|
176
431
|
maxParallel?: number;
|
|
177
432
|
minDelayBetweenUnprocessedRequestsRetriesMillis?: number;
|
|
178
433
|
}
|
|
434
|
+
/**
|
|
435
|
+
* Complete schema for a request in the queue.
|
|
436
|
+
*
|
|
437
|
+
* Represents a URL to be crawled along with its metadata, retry information, and custom data.
|
|
438
|
+
*/
|
|
179
439
|
export interface RequestQueueClientRequestSchema {
|
|
180
440
|
id: string;
|
|
181
441
|
uniqueKey: string;
|
|
@@ -190,6 +450,9 @@ export interface RequestQueueClientRequestSchema {
|
|
|
190
450
|
noRetry?: boolean;
|
|
191
451
|
loadedUrl?: string;
|
|
192
452
|
}
|
|
453
|
+
/**
|
|
454
|
+
* Result of adding a request to the queue.
|
|
455
|
+
*/
|
|
193
456
|
export interface RequestQueueClientAddRequestResult {
|
|
194
457
|
requestId: string;
|
|
195
458
|
wasAlreadyPresent: boolean;
|
|
@@ -209,12 +472,20 @@ interface UnprocessedRequest {
|
|
|
209
472
|
export interface RequestQueueClientUnlockRequestsResult {
|
|
210
473
|
unlockedCount: number;
|
|
211
474
|
}
|
|
475
|
+
/**
|
|
476
|
+
* Result of a batch operation on requests.
|
|
477
|
+
*
|
|
478
|
+
* Contains lists of successfully processed and unprocessed requests.
|
|
479
|
+
*/
|
|
212
480
|
export interface RequestQueueClientBatchRequestsOperationResult {
|
|
213
481
|
processedRequests: ProcessedRequest[];
|
|
214
482
|
unprocessedRequests: UnprocessedRequest[];
|
|
215
483
|
}
|
|
216
484
|
export type RequestQueueClientRequestToDelete = Pick<RequestQueueClientRequestSchema, 'id'> | Pick<RequestQueueClientRequestSchema, 'uniqueKey'>;
|
|
217
485
|
export type RequestQueueClientGetRequestResult = Omit<RequestQueueClientListItem, 'retryCount'>;
|
|
486
|
+
/**
|
|
487
|
+
* HTTP methods supported by Request Queue requests.
|
|
488
|
+
*/
|
|
218
489
|
export type AllowedHttpMethods = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'TRACE' | 'OPTIONS' | 'CONNECT' | 'PATCH';
|
|
219
490
|
export type RequestQueueRequestsAsyncIterable<T> = AsyncIterable<T>;
|
|
220
491
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request_queue.d.ts","sourceRoot":"","sources":["../../src/resource_clients/request_queue.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAK5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAyB,cAAc,EAAwB,MAAM,yBAAyB,CAAC;AAiBtG,qBAAa,kBAAmB,SAAQ,cAAc;IAClD,OAAO,CAAC,SAAS,CAAC,CAAS;IAE3B,OAAO,CAAC,aAAa,CAAC,CAAS;IAE/B;;OAEG;gBACS,OAAO,EAAE,2BAA2B,EAAE,WAAW,GAAE,uBAA4B;IAU3F
|
|
1
|
+
{"version":3,"file":"request_queue.d.ts","sourceRoot":"","sources":["../../src/resource_clients/request_queue.ts"],"names":[],"mappings":"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"}
|