| 
					
				 | 
			
			
				@@ -188,76 +188,66 @@ export default abstract class Job { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		this._setStatus(JobStatus.ACTIVE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		this._startedAt = performance.now(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			this._authorize() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				.then(() => this._execute(this._payload)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				// eslint-disable-next-line 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				// @ts-ignore 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				.then(async data => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					if ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						this._context.getSocketId() && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						this._context.getCallbackRef() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						await WebSocketModule.dispatch( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							this._context.getSocketId(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							"jobCallback", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							this._context.getCallbackRef(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								status: "success", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			await this._authorize(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			const data = await this._execute(this._payload); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (this._context.getSocketId() && this._context.getCallbackRef()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				await WebSocketModule.dispatch( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this._context.getSocketId(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					"jobCallback", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this._context.getCallbackRef(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						status: "success", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					this.log({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						message: "Job completed successfully", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						type: "success" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					JobStatistics.updateStats(this.getPath(), "successful"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					return data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				.catch(async (error: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					const message = error?.message ?? error; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					if ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						this._context.getSocketId() && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						this._context.getCallbackRef() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						await WebSocketModule.dispatch( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							this._context.getSocketId(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							"jobCallback", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							this._context.getCallbackRef(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								status: "error", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								message 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this.log({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				message: "Job completed successfully", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				type: "success" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			JobStatistics.updateStats(this.getPath(), "successful"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} catch (error: any) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			const message = error?.message ?? error; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (this._context.getSocketId() && this._context.getCallbackRef()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				await WebSocketModule.dispatch( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this._context.getSocketId(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					"jobCallback", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this._context.getCallbackRef(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						status: "error", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						message 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					this.log({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						message: `Job failed with error "${message}"`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						type: "error", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						data: { error } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					JobStatistics.updateStats(this.getPath(), "failed"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					throw error; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				.finally(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					this._completedAt = performance.now(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					JobStatistics.updateStats(this.getPath(), "total"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					if (this._startedAt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						JobStatistics.updateStats( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							this.getPath(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							"duration", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							this._completedAt - this._startedAt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					this._setStatus(JobStatus.COMPLETED); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this.log({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				message: `Job failed with error "${message}"`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				type: "error", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				data: { error } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			JobStatistics.updateStats(this.getPath(), "failed"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			throw error; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} finally { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this._completedAt = performance.now(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			JobStatistics.updateStats(this.getPath(), "total"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (this._startedAt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				JobStatistics.updateStats( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.getPath(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					"duration", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this._completedAt - this._startedAt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this._setStatus(JobStatus.COMPLETED); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	/** 
			 |