File tree Expand file tree Collapse file tree 1 file changed +18
-5
lines changed
Expand file tree Collapse file tree 1 file changed +18
-5
lines changed Original file line number Diff line number Diff line change @@ -32,19 +32,32 @@ const getById = (blobId) => ({ maybeOne }) =>
3232 . then ( map ( construct ( Blob ) ) ) ;
3333
3434const s3CountByStatus = ( status ) => ( { oneFirst } ) => {
35+ const lockCTEs = sql `
36+ notlockeds AS (
37+ SELECT 1 FROM blobs FOR UPDATE SKIP LOCKED
38+ ),
39+ locked AS (
40+ SELECT (
41+ (SELECT count(id) FROM blobs)
42+ -
43+ (SELECT count(*) FROM notlockeds)
44+ ) as count
45+ )` ;
3546 // in_progress is an implicit status
3647 if ( status === 'in_progress' ) {
37- return oneFirst ( sql `SELECT COUNT(*) FROM PGROWLOCKS('blobs')` ) ;
48+ return oneFirst ( sql `
49+ WITH ${ lockCTEs }
50+ SELECT count FROM locked`
51+ ) ;
52+ // return oneFirst(sql`SELECT COUNT(*) FROM PGROWLOCKS('blobs')`);
3853 } else if ( status === 'pending' ) {
3954 return oneFirst ( sql `
4055 WITH
4156 allpending AS (
4257 SELECT COUNT(*) FROM blobs WHERE s3_status='pending'
4358 ),
44- locked AS (
45- SELECT COUNT(*) FROM PGROWLOCKS('blobs')
46- )
47- SELECT allpending.count-locked.count FROM allpending, locked
59+ ${ lockCTEs }
60+ SELECT allpending.count-locked.count FROM allpending, locked
4861 ` ) ;
4962 } else {
5063 return oneFirst ( sql `SELECT COUNT(*) FROM blobs WHERE s3_status=${ status } ` ) ;
You can’t perform that action at this time.
0 commit comments