@@ -167,6 +167,12 @@ export class QueryQueue {
167167 return stream ;
168168 }
169169
170+ counter = 0 ;
171+
172+ generateQueueId ( ) {
173+ return this . counter ++ ;
174+ }
175+
170176 /**
171177 * Push query to the queue and call `QueryQueue.reconcileQueue()` method if
172178 * `options.skipQueue` is set to `false`, execute query skipping queue
@@ -189,6 +195,7 @@ export class QueryQueue {
189195 options ,
190196 ) {
191197 options = options || { } ;
198+ options . queueId = this . generateQueueId ( ) ;
192199 if ( this . skipQueue ) {
193200 const queryDef = {
194201 queryHandler,
@@ -200,6 +207,8 @@ export class QueryQueue {
200207 addedToQueueTime : new Date ( ) . getTime ( ) ,
201208 } ;
202209 this . logger ( 'Waiting for query' , {
210+ queueId : options . queueId ,
211+ spanId : options . spanId ,
203212 queueSize : 0 ,
204213 queryKey : queryDef . queryKey ,
205214 queuePrefix : this . redisQueuePrefix ,
@@ -209,7 +218,7 @@ export class QueryQueue {
209218 if ( queryHandler === 'stream' ) {
210219 throw new Error ( 'Streaming queries to Cube Store aren\'t supported' ) ;
211220 }
212- const result = await this . processQuerySkipQueue ( queryDef ) ;
221+ const result = await this . processQuerySkipQueue ( queryDef , options . queueId ) ;
213222 return this . parseResult ( result ) ;
214223 }
215224
@@ -251,6 +260,8 @@ export class QueryQueue {
251260
252261 if ( added > 0 ) {
253262 this . logger ( 'Added to queue' , {
263+ queueId,
264+ spanId : options . spanId ,
254265 priority,
255266 queueSize,
256267 queryKey,
@@ -273,6 +284,8 @@ export class QueryQueue {
273284
274285 if ( queryDef ) {
275286 this . logger ( 'Waiting for query' , {
287+ queueId,
288+ spanId : options . spanId ,
276289 queueSize,
277290 queryKey : queryDef . queryKey ,
278291 queuePrefix : this . redisQueuePrefix ,
@@ -614,9 +627,10 @@ export class QueryQueue {
614627 * @param {* } query
615628 * @returns {Promise<{ result: undefined | Object, error: string | undefined }> }
616629 */
617- async processQuerySkipQueue ( query ) {
630+ async processQuerySkipQueue ( query , queueId ) {
618631 const startQueryTime = ( new Date ( ) ) . getTime ( ) ;
619632 this . logger ( 'Performing query' , {
633+ queueId,
620634 queueSize : 0 ,
621635 queryKey : query . queryKey ,
622636 queuePrefix : this . redisQueuePrefix ,
@@ -639,6 +653,7 @@ export class QueryQueue {
639653 )
640654 } ;
641655 this . logger ( 'Performing query completed' , {
656+ queueId,
642657 queueSize : 0 ,
643658 duration : ( ( new Date ( ) ) . getTime ( ) - startQueryTime ) ,
644659 queryKey : query . queryKey ,
@@ -651,6 +666,7 @@ export class QueryQueue {
651666 error : ( e . message || e ) . toString ( ) // TODO error handling
652667 } ;
653668 this . logger ( 'Error while querying' , {
669+ queueId,
654670 queueSize : 0 ,
655671 duration : ( ( new Date ( ) ) . getTime ( ) - startQueryTime ) ,
656672 queryKey : query . queryKey ,
@@ -662,9 +678,10 @@ export class QueryQueue {
662678 if ( e instanceof TimeoutError ) {
663679 if ( handler ) {
664680 this . logger ( 'Cancelling query due to timeout' , {
681+ queueId,
665682 queryKey : query . queryKey ,
666683 queuePrefix : this . redisQueuePrefix ,
667- requestId : query . requestId
684+ requestId : query . requestId ,
668685 } ) ;
669686 await handler ( query ) ;
670687 }
@@ -708,6 +725,7 @@ export class QueryQueue {
708725 const startQueryTime = ( new Date ( ) ) . getTime ( ) ;
709726 const timeInQueue = ( new Date ( ) ) . getTime ( ) - query . addedToQueueTime ;
710727 this . logger ( 'Performing query' , {
728+ queueId,
711729 processingId,
712730 queueSize,
713731 queryKey : query . queryKey ,
@@ -755,6 +773,7 @@ export class QueryQueue {
755773 return queueConnection . optimisticQueryUpdate ( queryKeyHashed , { cancelHandler } , processingId , queueId ) ;
756774 } catch ( e ) {
757775 this . logger ( 'Error while query update' , {
776+ queueId,
758777 queryKey : query . queryKey ,
759778 error : e . stack || e ,
760779 queuePrefix : this . redisQueuePrefix ,
@@ -775,6 +794,7 @@ export class QueryQueue {
775794 }
776795
777796 this . logger ( 'Performing query completed' , {
797+ queueId,
778798 processingId,
779799 queueSize,
780800 duration : ( ( new Date ( ) ) . getTime ( ) - startQueryTime ) ,
@@ -793,6 +813,7 @@ export class QueryQueue {
793813 error : ( e . message || e ) . toString ( ) // TODO error handling
794814 } ;
795815 this . logger ( 'Error while querying' , {
816+ queueId,
796817 processingId,
797818 queueSize,
798819 duration : ( ( new Date ( ) ) . getTime ( ) - startQueryTime ) ,
@@ -811,6 +832,7 @@ export class QueryQueue {
811832 const queryWithCancelHandle = await queueConnection . getQueryDef ( queryKeyHashed ) ;
812833 if ( queryWithCancelHandle ) {
813834 this . logger ( 'Cancelling query due to timeout' , {
835+ queueId,
814836 processingId,
815837 queryKey : queryWithCancelHandle . queryKey ,
816838 queuePrefix : this . redisQueuePrefix ,
@@ -830,6 +852,7 @@ export class QueryQueue {
830852
831853 if ( ! ( await queueConnection . setResultAndRemoveQuery ( queryKeyHashed , executionResult , processingId , queueId ) ) ) {
832854 this . logger ( 'Orphaned execution result' , {
855+ queueId,
833856 processingId,
834857 warn : 'Result for query was not set due to processing lock wasn\'t acquired' ,
835858 queryKey : query . queryKey ,
@@ -855,6 +878,7 @@ export class QueryQueue {
855878 // }
856879
857880 this . logger ( 'Skip processing' , {
881+ queueId,
858882 processingId,
859883 queryKey : query && query . queryKey || queryKeyHashed ,
860884 requestId : query && query . requestId ,
@@ -869,6 +893,7 @@ export class QueryQueue {
869893 const currentProcessingId = await queueConnection . freeProcessingLock ( queryKeyHashed , processingId , activated ) ;
870894 if ( currentProcessingId ) {
871895 this . logger ( 'Skipping free processing lock' , {
896+ queueId,
872897 processingId,
873898 currentProcessingId,
874899 queryKey : query && query . queryKey || queryKeyHashed ,
@@ -885,6 +910,7 @@ export class QueryQueue {
885910 }
886911 } catch ( e ) {
887912 this . logger ( 'Queue storage error' , {
913+ queueId,
888914 queryKey : query && query . queryKey || queryKeyHashed ,
889915 requestId : query && query . requestId ,
890916 error : ( e . stack || e ) . toString ( ) ,
0 commit comments