lib/job.js
function Job(collection, data) {
    this.collection = collection;

    if (data) {
        // Convert plain object to JobData type
        data.__proto__ = JobData.prototype;
        this.data = data;
    } else {
        this.data = new JobData();
    }
}
function Job(collection, data) {
    this.collection = collection;

    if (data) {
        // Convert plain object to JobData type
        data.__proto__ = JobData.prototype;
        this.data = data;
    } else {
        this.data = new JobData();
    }
}
Job retry specification
@typedef {Object} Job~Attempts
@property {string} strategy - Name of {@link Worker~strategyCallback} to use on retry
@property {number} count - total number of attempts so far
@property {number} delay - a delay constant for use in determining a delay.  In default linear strategy, this will be the delay between attempts
 
@constructor
@param {string} collection - The collection to save the job to
@param {Object} data - The Job data