Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
return new Promise(res => {
if (down) {
if (moment(revision.sunset).unix() <= now) {
pull(revision).catch(e => {
// Need to message out here as we can't properly reject Promises
console.error(`Sunset failed: ${e.message}`); // eslint-disable-line no-console
});
}
else {
scheduler.scheduleJob(down, () => {
pull(revision).catch(e => {
// Need to message out here as we can't properly reject Promises
console.error(`Sunset failed: ${e.message}`); // eslint-disable-line no-console
});
});
}
}
res(true);
});
};
// Listen at the server
if (config.port) {
server.listen(config.port, config.host, (err) => {
if (err) {
console.error(err);
}
console.info('----\n==> ✅ %s is running, talking to API server.', config.app.title);
console.info('==> 💻 Open http://%s:%s in a browser to view the app.', config.host, config.port);
});
} else {
console.error('==> ERROR: No PORT environment variable has been specified');
}
// Schedule the emails to be sent out
schedule.scheduleJob(EMAIL_CRON, () => {
console.log('\nRUNNING JOB:');
if (ACTIVE_MILESTONE) {
fetch(`${INTERNAL_ENDPOINT}/email-screenshot/${ACTIVE_MILESTONE}`).then(response => {
console.log('Made request to send sprint email');
if (response.status >= 200 && response.status < 300) {
console.log('successfull');
response.text().then(d => (console.log(d)));
} else {
console.error('fail');
response.text().then(d => (console.error(d)));
}
});
} else {
fetch(`${INTERNAL_ENDPOINT}/email/maintenance`).then(response => {
console.log('Made request to send maintenance email');
if (response.status >= 200 && response.status < 300) {
if (error.response) {
const { data } = error.response
console.log(`${date}: 糟糕....请求出了点小差错。错误原因:${JSON.stringify(data)}`)
serverPushInstance.sendMessageToWechat(
`【Wakatime Sync】${date}的数据同步失败`,
`错误原因:${JSON.stringify(data)}`
)
}
})
}
// 每次重跑 job 手动执行一次同步
syncWakaTimeToGist(config.syncGistId)
// 每天1点30分30秒执行该job
const job = schedule.scheduleJob('30 30 1 * * *', function() {
syncWakaTimeToGist(config.syncGistId)
})
})
})())
}
// 定时任务
if (timing) {
const promiseTask = () => {
promise()
.then(data => hommizationSet(key, data))
.catch(err => {
console.warn(`Redis 定时任务执行失败,${timing.error} 后重试:`, err)
setTimeout(promiseTask, timing.error)
})
}
promiseTask()
schedule.scheduleJob(timing.schedule, promiseTask)
}
// 返回 Redis 获取器
return () => hommizationGet(key)
}
exports.timeTask = function () {
// 两个时间规则,降低爬虫频率,提高成功率
let ruleChina = new schedule.RecurrenceRule();
let ruleAll = new schedule.RecurrenceRule();
let ruleLanguage = new schedule.RecurrenceRule();
ruleChina.hour = [1];
ruleChina.minute = 0;
ruleAll.hour = [2];
ruleAll.minute = 0;
ruleLanguage.hour = [3];
ruleLanguage.minute = 0;
// 每隔6小时执行一次, 奇数小时
schedule.scheduleJob(ruleChina, async function () {
console.log('China most followers定时任务开始执行!', moment().format('YYYY-MM-DD HH:mm:ss'));
// 获取 100 most followers of china
html: html
};
transporter.sendMail(mailOptions, (error, info = {}) => {
if (error) {
console.log(error);
// sendMail(HtmlData); //再次发送
return false;
}
console.log("邮件发送成功", info.messageId);
console.log("静等下一次发送");
});
}
//每日发送时间
let EmailHour = 8;
let EmialMinminute= 20;
let rule = new schedule.RecurrenceRule();
// 0, 1, 2, 3, 4, 5, 6
// Sunday, mon, tue, th, f, f s
rule.dayOfWeek = [0, new schedule.Range(1, 6)];
rule.hour = EmailHour;
rule.minute = EmialMinminute;
console.log('NodeMail: 开始等待目标时刻...')
let j = schedule.scheduleJob(rule, function() {
console.log("执行任务");
getAllDataAndSendMail();
});
if (error) {
console.log(error);
// sendMail(HtmlData); //再次发送
return false;
}
console.log("邮件发送成功", info.messageId);
console.log("静等下一次发送");
});
}
//每日发送时间
let EmailHour = 8;
let EmialMinminute= 20;
let rule = new schedule.RecurrenceRule();
// 0, 1, 2, 3, 4, 5, 6
// Sunday, mon, tue, th, f, f s
rule.dayOfWeek = [0, new schedule.Range(1, 6)];
rule.hour = EmailHour;
rule.minute = EmialMinminute;
console.log('NodeMail: 开始等待目标时刻...')
let j = schedule.scheduleJob(rule, function() {
console.log("执行任务");
getAllDataAndSendMail();
});
/**
* 定时任务
**/
var schedule = require("node-schedule");
var conf = require('../config.js');
//第一次开启时先跑一遍逻辑
SyncFans();
SyncCard();
SyncShop();
/**
* 定时拉取粉丝信息(每天6:00)
**/
var ruleFans = new schedule.RecurrenceRule();
ruleFans.dayOfWeek = [0, new schedule.Range(1, 6)];
ruleFans.hour = 6;
ruleFans.minute = 0;
//var fansTimes = [];
//for (var j = 0; j < 60; j = j + 1) {
// fansTimes.push(i);
//}
//ruleFans.minute = fansTimes;
var fansJob = schedule.scheduleJob(ruleFans, function () {
SyncFans();
});
/**
* 同步粉丝
**/
function SyncFans() {
/*
* 规则4 每天凌晨1点和中午13点定时任务
* */
let rule4 = new schedule.RecurrenceRule();
rule4.hour = [1,13];
rule4.minute = 0; //必填
/*
* 规则5 凌晨3点的定时任务
* */
let rule5 = new schedule.RecurrenceRule();
rule5.hour = 3;
rule5.minute = 0; //必填
/*
* 规则6 每两个小时一次的定时任务
* */
let rule6 = new schedule.RecurrenceRule();
// rule6.hour = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23];
// rule6.hour = [];
rule6.hour = [0,2,4,6,8,10,12,14,16,18,20,22];
rule6.minute = 0; //必填
// let i6 = 0, length6 = 12;
// for(i6; i6
ReadPump.prototype.StartPolling = function(callback) {
let self = this;
// install a schedule that triggers every second.
let schedule = require('node-schedule');
let rule = new schedule.RecurrenceRule();
rule.second = new schedule.Range(0, 59, 1);
self.poller = schedule.scheduleJob(rule, function() {
let d = new Date();
let s = d.getSeconds();
let nodesToRead = self.polledMeasurements.filter(function(m) {
return s % m.pollInterval === 0
});
if (nodesToRead.length > 0) {
self.ExecuteOPCUAReadRequest(nodesToRead, false, function(err, results) {
if (err) {
callback(err);
return;
}