@cumulus/ingest
Version:
Ingest utilities
41 lines • 1.88 kB
TypeScript
export interface Lock {
Key?: string;
LastModified?: Date;
}
/**
* Checks all locks and removes those older than five minutes. Returns a count
* of locks that are not older than configured retention period or 5 minutes.
*
* @param {object} bucket - The AWS S3 bucket with the locks to check
* @param {Array} locks - The list of locks in the bucket
* @param {number} retentionTimeInSeconds - lock retention time in seconds, default is 300
* @returns {integer} - Number of locks remaining in bucket
*/
export declare function checkOldLocks(bucket: string, locks?: Lock[], retentionTimeInSeconds?: number): Promise<number>;
/**
* Counts the number of locks in a bucket.
*
* @param {object} bucket - The AWS S3 bucket to check
* @param {string} providerName - The provider name
* @param {number} retentionTimeInSeconds - lock retention time in seconds, default is 300
* @returns {integer} - Number of current locks in the bucket
*/
export declare function countLock(bucket: string, providerName: string, retentionTimeInSeconds?: number): Promise<number>;
export declare function removeLock(bucket: string, providerName: string, granuleId: string): Promise<void>;
/**
*
* @param {string} bucket - system bucket to place the lock files
* @param {object} provider - provider object
* @param {string} provider.id - provider id
* @param {number} provider.globalConnectionLimit - provider globalConnectionLimit
* @param {number} provider.maxDownloadTime - provider maxDownloadTime for a granule
* @param {string} granuleId - id of downloading granule
* @param {number} counter - retry counter
* @returns {Promise<boolean>}
*/
export declare function proceed(bucket: string, provider: {
id: string;
globalConnectionLimit?: number;
maxDownloadTime?: number;
}, granuleId: string, counter?: number): Promise<boolean>;
//# sourceMappingURL=lock.d.ts.map