@@ -11,18 +11,13 @@ import {
1111 ESQueueInstance ,
1212 ESQueueWorkerExecuteFn ,
1313 ExportTypeDefinition ,
14- ImmediateExecuteFn ,
15- JobDocPayload ,
1614 JobSource ,
1715 Logger ,
18- RequestFacade ,
1916} from '../../types' ;
2017// @ts -ignore untyped dependency
2118import { events as esqueueEvents } from './esqueue' ;
2219
2320export function createWorkerFactory < JobParamsType > ( reporting : ReportingCore , logger : Logger ) {
24- type JobDocPayloadType = JobDocPayload < JobParamsType > ;
25-
2621 const config = reporting . getConfig ( ) ;
2722 const queueConfig = config . get ( 'queue' ) ;
2823 const kibanaName = config . kbnConfig . get ( 'server' , 'name' ) ;
@@ -31,48 +26,36 @@ export function createWorkerFactory<JobParamsType>(reporting: ReportingCore, log
3126 // Once more document types are added, this will need to be passed in
3227 return async function createWorker ( queue : ESQueueInstance ) {
3328 // export type / execute job map
34- const jobExecutors : Map <
35- string ,
36- ImmediateExecuteFn < JobParamsType > | ESQueueWorkerExecuteFn < JobDocPayloadType >
37- > = new Map ( ) ;
29+ const jobExecutors : Map < string , ESQueueWorkerExecuteFn < unknown > > = new Map ( ) ;
3830
3931 for ( const exportType of reporting . getExportTypesRegistry ( ) . getAll ( ) as Array <
40- ExportTypeDefinition <
41- JobParamsType ,
42- unknown ,
43- unknown ,
44- ImmediateExecuteFn < JobParamsType > | ESQueueWorkerExecuteFn < JobDocPayloadType >
45- >
32+ ExportTypeDefinition < JobParamsType , unknown , unknown , ESQueueWorkerExecuteFn < unknown > >
4633 > ) {
4734 const jobExecutor = await exportType . executeJobFactory ( reporting , logger ) ; // FIXME: does not "need" to be async
4835 jobExecutors . set ( exportType . jobType , jobExecutor ) ;
4936 }
5037
51- const workerFn = ( jobSource : JobSource < JobParamsType > , ...workerRestArgs : any [ ] ) => {
38+ const workerFn = < ScheduledTaskParamsType > (
39+ jobSource : JobSource < ScheduledTaskParamsType > ,
40+ jobParams : ScheduledTaskParamsType ,
41+ cancellationToken : CancellationToken
42+ ) => {
5243 const {
5344 _id : jobId ,
5445 _source : { jobtype : jobType } ,
5546 } = jobSource ;
5647
48+ if ( ! jobId ) {
49+ throw new Error ( `Claimed job is missing an ID!: ${ JSON . stringify ( jobSource ) } ` ) ;
50+ }
51+
5752 const jobTypeExecutor = jobExecutors . get ( jobType ) ;
58- // pass the work to the jobExecutor
5953 if ( ! jobTypeExecutor ) {
6054 throw new Error ( `Unable to find a job executor for the claimed job: [${ jobId } ]` ) ;
6155 }
6256
63- if ( jobId ) {
64- const jobExecutorWorker = jobTypeExecutor as ESQueueWorkerExecuteFn < JobDocPayloadType > ;
65- return jobExecutorWorker (
66- jobId ,
67- ...( workerRestArgs as [ JobDocPayloadType , CancellationToken ] )
68- ) ;
69- } else {
70- const jobExecutorImmediate = jobExecutors . get ( jobType ) as ImmediateExecuteFn < JobParamsType > ;
71- return jobExecutorImmediate (
72- null ,
73- ...( workerRestArgs as [ JobDocPayload < JobParamsType > , RequestFacade ] )
74- ) ;
75- }
57+ // pass the work to the jobExecutor
58+ return jobTypeExecutor ( jobId , jobParams , cancellationToken ) ;
7659 } ;
7760
7861 const workerOptions = {
0 commit comments