@@ -42,6 +42,7 @@ import {
42
42
RunQueueKeyProducer ,
43
43
RunQueueSelectionStrategy ,
44
44
} from "./types.js" ;
45
+ import { WorkerQueueResolver } from "./workerQueueResolver.js" ;
45
46
46
47
const SemanticAttributes = {
47
48
QUEUE : "runqueue.queue" ,
@@ -169,6 +170,7 @@ export class RunQueue {
169
170
private shardCount : number ;
170
171
private abortController : AbortController ;
171
172
private worker : Worker < typeof workerCatalog > ;
173
+ private workerQueueResolver : WorkerQueueResolver ;
172
174
private _observableWorkerQueues : Set < string > = new Set ( ) ;
173
175
private _meter : Meter ;
174
176
private _queueCooloffStates : Map < string , QueueCooloffState > = new Map ( ) ;
@@ -185,6 +187,8 @@ export class RunQueue {
185
187
} ,
186
188
} ) ;
187
189
this . logger = options . logger ?? new Logger ( "RunQueue" , options . logLevel ?? "info" ) ;
190
+
191
+ this . workerQueueResolver = new WorkerQueueResolver ( { logger : this . logger } ) ;
188
192
this . _meter = options . meter ?? getMeter ( "run-queue" ) ;
189
193
190
194
const workerQueueObservableGauge = this . _meter . createObservableGauge (
@@ -1845,19 +1849,8 @@ export class RunQueue {
1845
1849
) ;
1846
1850
}
1847
1851
1848
- #getWorkerQueueFromMessage( message : OutputPayload ) {
1849
- if ( message . version === "2" ) {
1850
- return message . workerQueue ;
1851
- }
1852
-
1853
- // In v2, if the environment is development, the worker queue is the environment id.
1854
- if ( message . environmentType === "DEVELOPMENT" ) {
1855
- return message . environmentId ;
1856
- }
1857
-
1858
- // In v1, the master queue is something like us-nyc-3,
1859
- // which in v2 is the worker queue.
1860
- return message . masterQueues [ 0 ] ;
1852
+ #getWorkerQueueFromMessage( message : OutputPayload ) : string {
1853
+ return this . workerQueueResolver . getWorkerQueueFromMessage ( message ) ;
1861
1854
}
1862
1855
1863
1856
#createBlockingDequeueClient( ) {
0 commit comments