#node.js #heroku #https
#node.js #heroku #https
Вопрос:
Я очень новичок в использовании heroku, и я не знаю, когда использовать веб-процессоры или рабочие. Мой код выполняет http-запросы и архивирует downlaods с внешнего сайта. Что я хочу знать, должен ли он быть рабочим или веб-процессором
const https = require('https');
const fs = require("fs");
const tiktok = require("tiktok-scraper");
var link
(async () => {
try {
const posts = await tiktok.user('doarda', { number: 100 });
link = posts.collector[0].videoUrl
const optionsRequest = {
headers: {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36",
"Accept": "text/html,application/xhtml xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"Accept-Language": "pt-BR,en-US;q=0.7,en;q=0.3",
"Accept-Encoding": "gzip, deflate, br",
"Connection": "keep-alive",
"Referer": 'https://www.tiktok.com/',
"Upgrade-Insecure-Requests": "1"
}
}
const file = fs.createWriteStream(posts.collector[0].id ".mp4");
const request = await https.get(link,optionsRequest, function(response) {
response.pipe(file)
});
} catch (error) {
console.log(error);
}
})();
Ответ №1:
Вам нужен веб-динамик, если ваше приложение будет принимать (входящие) HTTP-запросы. При запуске он будет привязывать данный порт (переменная $PORT env), а URL-адрес будет выглядеть примерно так myapp.herokuapp.com
С другой стороны, рабочий процесс не требует подключения: обычно это внутренний процесс, который может выполнять некоторую логику. Обратите внимание, что вы все еще можете инициировать исходящее соединение от рабочего (т.Е. Подключиться к облачному сервису или веб-сайтам).
Также обратите внимание, что веб-процессы получают свои запросы через dyno Manager heroku, что означает, что ваш веб-процесс (на бесплатном уровне) будет запускаться только при наличии активных запросов
С другой стороны, рабочие процессы выполняются до тех пор, пока вы их не остановите (либо с помощью cli, либо с помощью веб-сайта)
Комментарии:
1. итак, я попытался развернуть этот код в heroku на веб-сервере, но он не может удалить файл.. Но файл, который я запускаю локально, правильно загружен