Node.js 节点cron:我得到错误:listen EADDRINUSE:地址已在使用中
我使用Node.js 节点cron:我得到错误:listen EADDRINUSE:地址已在使用中,node.js,listen,node-cron,Node.js,Listen,Node Cron,我使用节点cron定期运行程序。我运行了下面的代码,但是下面的错误表明端口已经在使用中 我在windows 10的命令提示符下运行node.js程序。一旦出现这个错误,我就关闭了aim中的命令提示符窗口,以结束所有正在使用的连接。然后再次打开窗口并再次运行节点程序。但我也犯了同样的错误 我应该只使用这个程序的端口号3128。这个程序一直没有问题,因为我已经运行了多次。但今天突然出现了这个错误 我想知道为什么即使在程序结束后,端口仍在使用,并且想知道是否应该使用一些代码明确关闭节点cron程序,比
节点cron
定期运行程序。我运行了下面的代码,但是下面的错误表明端口已经在使用中
我在windows 10的命令提示符下运行node.js程序。一旦出现这个错误,我就关闭了aim中的命令提示符窗口,以结束所有正在使用的连接。然后再次打开窗口并再次运行节点程序。但我也犯了同样的错误
我应该只使用这个程序的端口号3128。这个程序一直没有问题,因为我已经运行了多次。但今天突然出现了这个错误
我想知道为什么即使在程序结束后,端口仍在使用,并且想知道是否应该使用一些代码明确关闭节点cron程序,比如node cron.closePort()
sched_exec.js
"use strict";
const cron = require("node-cron");
const express = require("express");
const fs = require("fs");
const sync_module = require('./sync');
const logwriter = require('./logWriter/logwriter');
const app = express();
// schedule tasks to be run on the server
//const exec_timing = "0 2 * * *";
const exec_timing = "* * * * *";
cron.schedule(exec_timing, function() {
logwriter.info("start");
//do something
});
app.listen(3128);
错误:
C:\inetpub\ftpfolder\syncSchedule>node sched_exec
events.js:292
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE: address already in use :::3128
at Server.setupListenHandle [as _listen2] (net.js:1313:16)
at listenInCluster (net.js:1361:12)
at Server.listen (net.js:1447:7)
at Function.listen (C:\inetpub\ftpfolder\syncSchedule\node_modules\express\lib\application.js:618:24)
at Object.<anonymous> (C:\inetpub\ftpfolder\syncSchedule\sched_exec.js:21:5)
at Module._compile (internal/modules/cjs/loader.js:1137:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
at Module.load (internal/modules/cjs/loader.js:985:32)
at Function.Module._load (internal/modules/cjs/loader.js:878:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
Emitted 'error' event on Server instance at:
at emitErrorNT (net.js:1340:8)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
code: 'EADDRINUSE',
errno: 'EADDRINUSE',
syscall: 'listen',
address: '::',
port: 3128
}
C:\inetpub\ftpfolder\syncSchedule>node sched\u exec
events.js:292
投掷者;//未处理的“错误”事件
^
错误:侦听EADDRINUSE:地址已在使用中:::3128
在Server.setupListenHandle[as _listen2](net.js:1313:16)
在ListeniCluster(net.js:1361:12)
在Server.listen(net.js:1447:7)
在Function.listen(C:\inetpub\ftpfolder\syncSchedule\node\u modules\express\lib\application.js:618:24)
反对
它有两个node.js进程。但我不知道为什么。我应该在另一篇文章中问这个问题吗?您的机器上某处运行着这个程序的另一个实例,或者其他程序
EADDRINUSE
是一个操作系统错误,提示您的应用程序侦听(3128)
线路无法侦听计算机上该端口(3128)上的传入连接,因为其他程序已在侦听
您试图停止正在侦听的程序失败
你怎么知道运行的是什么程序?当然,您可以使用任务管理器(ctrl-shift-escape)查看所有正在运行的程序
您还可以打开cmd shell(作为管理员)并说netstat-ab
,-b
选项显示正在侦听的可执行文件。谢谢。但我知道这个端口正在使用中。我的问题不好,所以我添加了一些来澄清我想问的问题。谢谢。我做了netstat-ab。它说,[node.exe]是端口3128连接的所有者。但是,我认为没有任何其他节点进程正在运行。。