76 lines
2.3 KiB
JavaScript
76 lines
2.3 KiB
JavaScript
import cron from 'node-cron';
|
|
import { trigger as triggerUSDCNYRate } from '../scraper/usd-cny-rate.scraper.js';
|
|
import { trigger as triggerSH300Data } from '../scraper/sh300.scraper.js';
|
|
|
|
console.log('='.repeat(70));
|
|
console.log('🚀 启动定时任务调度器');
|
|
console.log('='.repeat(70));
|
|
|
|
// 注册定时任务 - USD-CNY 汇率数据
|
|
const jobUSDCNY = cron.schedule('0 0 * * *', async () => {
|
|
console.log('\n' + '='.repeat(70));
|
|
console.log('⏰ 执行定时任务: USD-CNY 汇率数据更新');
|
|
console.log('📅 执行时间:', new Date().toISOString());
|
|
console.log('='.repeat(70));
|
|
|
|
try {
|
|
await triggerUSDCNYRate();
|
|
console.log('\n✅ 任务执行成功!');
|
|
} catch (error) {
|
|
console.error('\n❌ 任务执行失败:', error.message);
|
|
} finally {
|
|
console.log('='.repeat(70));
|
|
}
|
|
}, {
|
|
scheduled: true,
|
|
timezone: 'Asia/Shanghai'
|
|
});
|
|
|
|
// 注册定时任务 - 沪深300指数数据
|
|
const jobSH300 = cron.schedule('0 0 * * *', async () => {
|
|
console.log('\n' + '='.repeat(70));
|
|
console.log('⏰ 执行定时任务: 沪深300指数数据更新');
|
|
console.log('📅 执行时间:', new Date().toISOString());
|
|
console.log('='.repeat(70));
|
|
|
|
try {
|
|
await triggerSH300Data();
|
|
console.log('\n✅ 任务执行成功!');
|
|
} catch (error) {
|
|
console.error('\n❌ 任务执行失败:', error.message);
|
|
} finally {
|
|
console.log('='.repeat(70));
|
|
}
|
|
}, {
|
|
scheduled: true,
|
|
timezone: 'Asia/Shanghai'
|
|
});
|
|
|
|
console.log('✅ 定时任务已启动: USD-CNY 汇率数据更新');
|
|
console.log('📅 执行表达式: 0 0 * * * (每天 0 点)');
|
|
console.log('📅 下次执行时间: 明天 00:00');
|
|
console.log('');
|
|
console.log('✅ 定时任务已启动: 沪深300指数数据更新');
|
|
console.log('📅 执行表达式: 0 0 * * * (每天 0 点)');
|
|
console.log('📅 下次执行时间: 明天 00:00');
|
|
console.log('');
|
|
console.log('按 Ctrl+C 停止...');
|
|
console.log('='.repeat(70));
|
|
|
|
// 优雅处理退出
|
|
process.on('SIGINT', () => {
|
|
console.log('\n' + '='.repeat(70));
|
|
console.log('🛑 停止定时任务调度器');
|
|
console.log('='.repeat(70));
|
|
|
|
jobUSDCNY.stop();
|
|
jobSH300.stop();
|
|
console.log('✅ 定时任务已停止');
|
|
|
|
console.log('\n' + '='.repeat(70));
|
|
console.log('📊 定时任务调度器已停止');
|
|
console.log('='.repeat(70));
|
|
|
|
process.exit(0);
|
|
});
|