在 Typescript 中,我有一个控制器类,它有一个我想每天早上 5 点运行的方法。
我的第一个想法是使用 node-cron 或 node-scheduler 来安排一些事情,但这些似乎严格适用于节点项目,而不是打字稿。
我需要做的是 a) 将我的整个打字稿项目转换为节点,然后 b) 按计划运行该方法。
不过,似乎没有任何关于如何做到这一点的解释。我看到的解释都是关于按某个计划运行 node.js 函数,例如这个: 我需要一个 Nodejs 调度程序,它允许以不同的时间间隔执行任务
下面的代码说明了我正在尝试做的最好的近似。
控制器.ts
import SomeOtherClass from './factory';
class MyController {
public async methodToRun(){
console.log ("King Chronos")
}
}
Run Code Online (Sandbox Code Playgroud)
cron-job.ts
import MyController from "../src/controller";
let controller = new MyController();
var cronJob = require('cron').CronJob;
var myJob = new cronJob('00 30 11 * * 1-5', function(){
controller.methodToRun();
console.log("cron ran")
});
myJob.start();
Run Code Online (Sandbox Code Playgroud) 我正在使用"electron": "^5.0.0"and "node-schedule": "^1.3.2"-node -schedule。我试图在启动电子应用程序时加载我的作业队列。
我的main.js电子看起来如下所示:
async function main() {
const {
app,
BrowserWindow
} = require('electron')
const schedule = require('node-schedule');
const {
Schedule
} = require('./schedule')
let win
let sch = new Schedule()
try {
await sch.initScheduledContent()
console.log("Imported of jobs done!");
} catch (error) {
console.log(error);
}
function createWindow() {
win = new BrowserWindow({
width: 800,
height: 600
})
win.loadFile('index.html')
win.on('closed', () => {
win = null
})
}
app.on('ready', createWindow)
app.on('window-all-closed', () …Run Code Online (Sandbox Code Playgroud)