JS的单线程,其实指的是js主引擎线程的。除此之外还有定时器线程、异步http线程(ajax)等,最终通过Event Loop协调执行。
为了充分利用多核CPU,可以使用 worker_threads 实现多线程, child_process 或 cluster 实现多进程(master-worker模式)。
不同于浏览器中的 web worker ,nodejs中通过 worker_threads 实现多线程。通常在计算密集型场景中,才需要使用NodeJs多线程,因此使用场景较少。
electron中即经常使用该模块。
cluster 封装了 child_process.fork ,并内置了负载均衡,可有效实现多进程。
1.使用node-schedule在指定时间执行方法var schedule = require('node-schedule')
var date = new Date(2017, 11, 16, 16, 43, 0)
var j = schedule.scheduleJob(date, function(){
console.log('现在时间:',new Date())
})
2.指定时间间隔执行方法 (扩展-->每秒执行就是rule.second =[0,1,2,3......59])
var rule = new schedule.RecurrenceRule()
rule.second = 10
var j = schedule.scheduleJob(rule, function(){
console.log('现在时间:',new Date())
})
3.每小时的固定时间
(每小时的40分钟执行)
var rule = new schedule.RecurrenceRule()
rule.minute = 40
var j = schedule.scheduleJob(rule, function(){
console.log("执行任务")
})