Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Heroku上的Release作业会随机停止通过FTP发送文件_Heroku_Ftp - Fatal编程技术网

Heroku上的Release作业会随机停止通过FTP发送文件

Heroku上的Release作业会随机停止通过FTP发送文件,heroku,ftp,Heroku,Ftp,我有一个应用程序发布过程,已经正常运行了一两周,现在已经随机停止工作。 我的npm应用程序是用Heroku构建的,然后运行一个发布作业,将静态文件FTPs到另一台主机。我用这个来做这件事。这已随机停止工作,出现超时错误: Error: Timeout while connecting to server at Timeout._onTimeout (/app/node_modules/ftp/lib/connection.js:304:24) at ontimeout (time

我有一个应用程序发布过程,已经正常运行了一两周,现在已经随机停止工作。 我的npm应用程序是用Heroku构建的,然后运行一个发布作业,将静态文件FTPs到另一台主机。我用这个来做这件事。这已随机停止工作,出现超时错误:

Error: Timeout while connecting to server
    at Timeout._onTimeout (/app/node_modules/ftp/lib/connection.js:304:24)
    at ontimeout (timers.js:436:11)
    at tryOnTimeout (timers.js:300:5)
    at listOnTimeout (timers.js:263:5)
    at Timer.processTimers (timers.js:223:10)
详情如下:

const DIST_PATH = `dist/cineworld-planner`;
const filesList = readdirSync(join(process.cwd(), DIST_PATH));

const client = new Client();

function pushFiles() {
    const putFile = bindNodeCallback(client.put.bind(client));

    from(filesList).pipe(
        mergeMap(fileName => {
            const localPath = join(process.cwd(), DIST_PATH, fileName);
            console.log(`Putting path ${localPath} to remote ${fileName}`);
            return putFile(localPath, fileName);
        }, 1)
    ).subscribe({
        complete: () => client.end()
    });
}

client.on('ready', () => {
    console.log(`READY`);
    pushFiles();
});

client.on('error', (error: any) => {
    const code = error.code || 'NO_CODE';

    console.log(`ERROR: ${code}`);

    console.log(error);

    process.exit(1);
});

client.connect({
    user: process.env.FTP_USER,
    host: process.env.FTP_HOST,
    password: process.env.FTP_PASSWORD
});
我问过我的主机是否有任何问题,但他们所说的是,我的脚本报告运行它的IP地址没有被阻止

我已经在我的家用电脑上测试了这个脚本,它在那里也可以正常工作

如果停止工作,这将是一个巨大的痛苦。我真的不知道还能尝试什么


非常感谢您的帮助。

事实证明,对我来说,解决方法很简单,只需增加超时时间:

const connectOptions: Options = {
    user: process.env.FTP_USER,
    host: process.env.FTP_HOST,
    password: process.env.FTP_PASSWORD,
    connTimeout: 60000,
    pasvTimeout: 60000,
};

client.connect(connectOptions);