2015-04-22 07:50:11 +09:00
|
|
|
SyncedCron.options = {
|
|
|
|
log: false,
|
|
|
|
collectionName: 'cronHistory',
|
|
|
|
utc: false,
|
|
|
|
collectionTTL: 172800
|
2015-05-01 18:22:00 +02:00
|
|
|
};
|
2015-04-22 07:50:11 +09:00
|
|
|
|
2015-05-01 18:22:00 +02:00
|
|
|
var defaultFrequency = 7; // once a week
|
|
|
|
var defaultTime = '00:00';
|
2015-04-22 07:50:11 +09:00
|
|
|
|
|
|
|
var getSchedule = function (parser) {
|
2016-02-17 20:44:52 +09:00
|
|
|
var frequency = Telescope.settings.get('newsletterFrequency', defaultFrequency);
|
2015-04-22 07:50:11 +09:00
|
|
|
var recur = parser.recur();
|
|
|
|
var schedule;
|
|
|
|
|
2015-06-23 22:40:43 -04:00
|
|
|
// Default is once a week (Mondays)
|
|
|
|
if (!!frequency) {
|
|
|
|
schedule = recur.on(frequency).dayOfWeek();
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
2015-06-23 22:40:43 -04:00
|
|
|
else {
|
|
|
|
schedule = recur.on(2).dayOfWeek();
|
|
|
|
}
|
|
|
|
|
2016-02-17 20:44:52 +09:00
|
|
|
return schedule.on(Telescope.settings.get('newsletterTime', defaultTime)).time();
|
2015-05-01 18:22:00 +02:00
|
|
|
};
|
2015-04-22 07:50:11 +09:00
|
|
|
|
|
|
|
Meteor.methods({
|
|
|
|
getNextJob: function () {
|
|
|
|
var nextJob = SyncedCron.nextScheduledAtDate('scheduleNewsletter');
|
|
|
|
console.log(nextJob);
|
|
|
|
return nextJob;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
var addJob = function () {
|
|
|
|
SyncedCron.add({
|
|
|
|
name: 'scheduleNewsletter',
|
|
|
|
schedule: function(parser) {
|
|
|
|
// parser is a later.parse object
|
|
|
|
return getSchedule(parser);
|
|
|
|
},
|
|
|
|
job: function() {
|
2015-10-13 10:00:29 +09:00
|
|
|
// only schedule newsletter campaigns in production
|
|
|
|
if (process.env.NODE_ENV === "production") {
|
|
|
|
scheduleNextCampaign();
|
|
|
|
}
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
});
|
2015-05-01 18:22:00 +02:00
|
|
|
};
|
2015-04-22 07:50:11 +09:00
|
|
|
Meteor.startup(function () {
|
2016-02-17 20:44:52 +09:00
|
|
|
if (Telescope.settings.get('enableNewsletter', false)) {
|
2015-04-22 07:50:11 +09:00
|
|
|
addJob();
|
|
|
|
}
|
|
|
|
});
|