当代码在其他文件中时如何 运行 Cron Job - Node JS
How to Run a Cron Job when the code is in Other File - Node JS
我正在尝试每 1 小时执行一次 cron。
为此,我在我的 index.js
文件中启动了 cron 作业,如下所示
const cron = require('node-cron');
const readDocuments = require("./cronJobs/readDocuments");
var task = cron.schedule('0 0 */1 * * *', readDocuments);
task.start();
因为要执行的实际代码已写在 ./cronJobs/readDocuments
中,此文件中的代码在下面,我正在尝试读取 csv 文件。
readDocuments.js
const ResponseManager = require("../common/ResponseManager");
var fs = require('fs');
const csv = require('csv-parser');
console.log('Read Document....')
try {
var filepath = "../files/abc.csv";
fs.createReadStream(filepath)
.on('error', () => {
// handle error
})
.pipe(csv())
.on('data', (row) => {
console.log('rowrowrow',row)
})
.on('end', () => {
// handle end of CSV
})
} catch (error) {
console.log('errorerror',error)
res.status(500).json(ResponseManager(false, error.message));
}
当我 运行 cmd 中的节点 js node index.js
时,控制台 Read Document....
正在显示,但其他代码未执行。
它给我 throw 'execution must be a function';
错误
我该如何解决这个问题,或者使用 index.js.
中的 cron 作业执行文件内代码的实际过程是什么
请帮忙。谢谢!!
cron.schedule()
的第二个参数必须是函数。您需要将代码包装成一个函数并将其从模块中导出。
const ResponseManager = require("../common/ResponseManager");
const fs = require('fs');
const csv = require('csv-parser');
module.exports = function () {
console.log('Read Document....')
try {
const filepath = "../files/abc.csv";
fs.createReadStream(filepath)
.on('error', () => {
// handle error
})
.pipe(csv())
.on('data', (row) => {
console.log('rowrowrow', row)
})
.on('end', () => {
// handle end of CSV
});
} catch (error) {
console.log('errorerror', error)
res.status(500).json(ResponseManager(false, error.message));
}
};
您需要导出 cron 函数并在您的文件中使用它
我正在尝试每 1 小时执行一次 cron。
为此,我在我的 index.js
文件中启动了 cron 作业,如下所示
const cron = require('node-cron');
const readDocuments = require("./cronJobs/readDocuments");
var task = cron.schedule('0 0 */1 * * *', readDocuments);
task.start();
因为要执行的实际代码已写在 ./cronJobs/readDocuments
中,此文件中的代码在下面,我正在尝试读取 csv 文件。
readDocuments.js
const ResponseManager = require("../common/ResponseManager");
var fs = require('fs');
const csv = require('csv-parser');
console.log('Read Document....')
try {
var filepath = "../files/abc.csv";
fs.createReadStream(filepath)
.on('error', () => {
// handle error
})
.pipe(csv())
.on('data', (row) => {
console.log('rowrowrow',row)
})
.on('end', () => {
// handle end of CSV
})
} catch (error) {
console.log('errorerror',error)
res.status(500).json(ResponseManager(false, error.message));
}
当我 运行 cmd 中的节点 js node index.js
时,控制台 Read Document....
正在显示,但其他代码未执行。
它给我 throw 'execution must be a function';
错误
我该如何解决这个问题,或者使用 index.js.
中的 cron 作业执行文件内代码的实际过程是什么请帮忙。谢谢!!
cron.schedule()
的第二个参数必须是函数。您需要将代码包装成一个函数并将其从模块中导出。
const ResponseManager = require("../common/ResponseManager");
const fs = require('fs');
const csv = require('csv-parser');
module.exports = function () {
console.log('Read Document....')
try {
const filepath = "../files/abc.csv";
fs.createReadStream(filepath)
.on('error', () => {
// handle error
})
.pipe(csv())
.on('data', (row) => {
console.log('rowrowrow', row)
})
.on('end', () => {
// handle end of CSV
});
} catch (error) {
console.log('errorerror', error)
res.status(500).json(ResponseManager(false, error.message));
}
};
您需要导出 cron 函数并在您的文件中使用它