|  | @@ -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);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	/**
 |