@@ -129,3 +129,110 @@ export const testReserveConcurrencyRecursiveWaits = task({
129129 } ;
130130 } ,
131131} ) ;
132+
133+ export const testChildTaskPriorityController = task ( {
134+ id : "test-child-task-priority-controller" ,
135+ run : async ( { delay = 5000 } : { delay : number } ) => {
136+ logger . info ( `Delaying for ${ delay } ms` ) ;
137+
138+ await new Promise ( ( resolve ) => setTimeout ( resolve , delay ) ) ;
139+
140+ return {
141+ completedAt : new Date ( ) ,
142+ } ;
143+ } ,
144+ } ) ;
145+
146+ export const testChildTaskPriorityParent = task ( {
147+ id : "test-child-task-priority-parent" ,
148+ run : async ( { delay = 5000 } : { delay : number } ) => {
149+ logger . info ( `Delaying for ${ delay } ms` ) ;
150+
151+ await new Promise ( ( resolve ) => setTimeout ( resolve , delay ) ) ;
152+
153+ await testChildTaskPriorityChild . triggerAndWait ( {
154+ delay,
155+ } ) ;
156+
157+ logger . info ( `Delay of ${ delay } ms completed` ) ;
158+
159+ return {
160+ completedAt : new Date ( ) ,
161+ } ;
162+ } ,
163+ } ) ;
164+
165+ export const testChildTaskPriorityChildCreator = task ( {
166+ id : "test-child-task-priority-child-creator" ,
167+ run : async ( { delay = 5000 } : { delay : number } ) => {
168+ await testChildTaskPriorityChild . batchTrigger ( [
169+ { payload : { delay, propagate : false } } ,
170+ { payload : { delay, propagate : false } } ,
171+ { payload : { delay, propagate : false } } ,
172+ { payload : { delay, propagate : false } } ,
173+ ] ) ;
174+
175+ return {
176+ completedAt : new Date ( ) ,
177+ } ;
178+ } ,
179+ } ) ;
180+
181+ export const testChildTaskPriorityChild = task ( {
182+ id : "test-child-task-priority-child" ,
183+ queue : {
184+ concurrencyLimit : 1 ,
185+ } ,
186+ run : async ( { delay = 5000 , propagate } : { delay : number ; propagate ?: boolean } ) => {
187+ logger . info ( `Delaying for ${ delay } ms` ) ;
188+
189+ await new Promise ( ( resolve ) => setTimeout ( resolve , delay ) ) ;
190+
191+ if ( typeof propagate === "undefined" || propagate ) {
192+ await testChildTaskPriorityGrandChild . triggerAndWait ( {
193+ delay,
194+ } ) ;
195+ }
196+
197+ logger . info ( `Delay of ${ delay } ms completed` ) ;
198+
199+ return {
200+ completedAt : new Date ( ) ,
201+ } ;
202+ } ,
203+ } ) ;
204+
205+ export const testChildTaskPriorityGrandChildCreator = task ( {
206+ id : "test-child-task-priority-grand-child-creator" ,
207+ run : async ( { delay = 5000 } : { delay : number } ) => {
208+ await testChildTaskPriorityGrandChild . batchTrigger ( [
209+ { payload : { delay } } ,
210+ { payload : { delay } } ,
211+ { payload : { delay } } ,
212+ ] ) ;
213+
214+ logger . info ( `Delay of ${ delay } ms completed` ) ;
215+
216+ return {
217+ completedAt : new Date ( ) ,
218+ } ;
219+ } ,
220+ } ) ;
221+
222+ export const testChildTaskPriorityGrandChild = task ( {
223+ id : "test-child-task-priority-grandchild" ,
224+ queue : {
225+ concurrencyLimit : 1 ,
226+ } ,
227+ run : async ( { delay = 5000 } : { delay : number } ) => {
228+ logger . info ( `Delaying for ${ delay } ms` ) ;
229+
230+ await new Promise ( ( resolve ) => setTimeout ( resolve , delay ) ) ;
231+
232+ logger . info ( `Delay of ${ delay } ms completed` ) ;
233+
234+ return {
235+ completedAt : new Date ( ) ,
236+ } ;
237+ } ,
238+ } ) ;
0 commit comments