jsreport-scheduling
Advanced tools
Comparing version 0.2.0 to 0.3.0
var CronTime = require('cron').CronTime | ||
var _ = require('underscore') | ||
var q = require('q') | ||
var domain = require('domain') | ||
@@ -18,3 +17,5 @@ var JobProcessor = module.exports = function (executionHandler, documentStore, logger, TaskType, options) { | ||
options.now = options.now || function () { return new Date() } | ||
options.now = options.now || function () { | ||
return new Date() | ||
} | ||
} | ||
@@ -70,36 +71,26 @@ | ||
var d = domain.create() | ||
return self._pingRunningTasks().then(function () { | ||
if (self.currentlyRunningTasks.length >= self.options.maxParallelJobs) { | ||
return | ||
} | ||
var defer = q.defer() | ||
return self._findTasksToRecover().then(function (tasks) { | ||
var promise = q.all(tasks.map(function (task) { | ||
self.logger.info('Recovering task ' + task.schedule.name) | ||
return self.processOne(task.schedule, task) | ||
})) | ||
return options.waitForJobToFinish ? promise : q() | ||
}).then(function () { | ||
return self.documentStore.collection('schedules').find(self._schedulesToProcessFilter()).then(function (schedules) { | ||
var promise = q.all(schedules.map(function (s) { | ||
return self.processOne(s, null) | ||
})) | ||
d.run(function () { | ||
self._pingRunningTasks().then(function () { | ||
if (self.currentlyRunningTasks.length >= self.options.maxParallelJobs) { | ||
return | ||
} | ||
return self._findTasksToRecover().then(function (tasks) { | ||
var promise = q.all(tasks.map(function (task) { | ||
self.logger.info('Recovering task ' + task.schedule.name) | ||
return self.processOne(task.schedule, task) | ||
})) | ||
return options.waitForJobToFinish ? promise : q() | ||
}).then(function () { | ||
return self.documentStore.collection('schedules').find(self._schedulesToProcessFilter()).then(function (schedules) { | ||
var promise = q.all(schedules.map(function (s) { | ||
return self.processOne(s, null) | ||
})) | ||
return options.waitForJobToFinish ? promise : q() | ||
}) | ||
}) | ||
}).then(function () { | ||
defer.resolve() | ||
}).catch(function (e) { | ||
self.logger.error('unable to load planned schedules ' + e.stack) | ||
defer.fail(e) | ||
}) | ||
}).catch(function (e) { | ||
self.logger.error('unable to load planned schedules ' + e.stack) | ||
throw e | ||
}) | ||
return defer.promise | ||
} | ||
@@ -168,3 +159,3 @@ | ||
$set: { | ||
state: 'error', | ||
state: e.canceled ? 'canceled' : 'error', | ||
error: e.stack, | ||
@@ -171,0 +162,0 @@ finishDate: self.options.now() |
{ | ||
"name": "jsreport-scheduling", | ||
"version": "0.2.0", | ||
"version": "0.3.0", | ||
"description": "jsreport extension for scheduling background rendering jobs", | ||
"scripts": { | ||
"test": "mocha test && standard", | ||
"test": "mocha test --timeout=5000 && standard", | ||
"prepublish": "node node_modules/jsreport-express/tools/optimize.js" | ||
@@ -8,0 +8,0 @@ }, |
@@ -225,3 +225,3 @@ define('scheduling.tasks.model',["app", "backbone", "core/dataGrid"], function (app, Backbone, DataGrid) { | ||
initialize: function () { | ||
$(document).on('keydown.data-detail', this.hotkey.bind(this)); | ||
$(document).on('keydown.schedule-detail', this.hotkey.bind(this)); | ||
}, | ||
@@ -228,0 +228,0 @@ |
@@ -7,3 +7,3 @@ define(["jquery", "app", "core/utils", "core/view.base"], | ||
initialize: function () { | ||
$(document).on('keydown.data-detail', this.hotkey.bind(this)); | ||
$(document).on('keydown.schedule-detail', this.hotkey.bind(this)); | ||
}, | ||
@@ -10,0 +10,0 @@ |
@@ -5,3 +5,2 @@ require('should') | ||
var JobProcessor = require('../lib/jobProcessor') | ||
var domain = require('domain') | ||
var Reporter = require('jsreport-core').Reporter | ||
@@ -18,4 +17,2 @@ | ||
reporter.init().then(function () { | ||
process.domain = process.domain || domain.create() | ||
process.domain.req = {} | ||
done() | ||
@@ -22,0 +19,0 @@ }).fail(done) |
require('should') | ||
var path = require('path') | ||
var domain = require('domain') | ||
var Reporter = require('jsreport-core').Reporter | ||
@@ -15,4 +14,2 @@ | ||
reporter.init().then(function () { | ||
process.domain = process.domain || domain.create() | ||
process.domain.req = {} | ||
done() | ||
@@ -19,0 +16,0 @@ }).fail(done) |
Sorry, the diff of this file is not supported yet
54790
1014