Size: a a a

Боты на Telegraf

2020 November 30

r

rev8ati in Боты на Telegraf
Kirill "Loskir" 🍏16+14 Loskutov
а зачем? просто вынеси функцию, импортни её и вызови
ну чтобы эта функция исполнялась отдельны процессом
источник

KL

Kirill "Loskir&... in Боты на Telegraf
rev8ati
ну чтобы эта функция исполнялась отдельны процессом
а зачем? ну тогда child_process
источник

r

rev8ati in Боты на Telegraf
Kirill "Loskir" 🍏16+14 Loskutov
а зачем? ну тогда child_process
ну я читаю доку на ноде по child_process, не совсем понятно как с ботом скрестить
источник

KL

Kirill "Loskir&... in Боты на Telegraf
rev8ati
ну я читаю доку на ноде по child_process, не совсем понятно как с ботом скрестить
ну как бы с этим ботом она никак не будет связана. это будет отдельный процесс, который сможет делать что угодно. там надо будет создавать свой объект Telegram итд
источник

i

ik in Боты на Telegraf
rev8ati
после выполнения умирал, запускался по cron
а почему линуксовским кроном не делать? отдельный процесс же будет
источник

r

rev8ati in Боты на Telegraf
Kirill "Loskir" 🍏16+14 Loskutov
ну как бы с этим ботом она никак не будет связана. это будет отдельный процесс, который сможет делать что угодно. там надо будет создавать свой объект Telegram итд
угу, а новый объект телеги будет с тем же токен работать ?
источник

r

rev8ati in Боты на Telegraf
ik
а почему линуксовским кроном не делать? отдельный процесс же будет
я так и хочу сделать
источник

JD

Johnny Doe in Боты на Telegraf
не удивилюсь что задача будет что-то типа рассылки по времени )
источник

i

ik in Боты на Telegraf
или сделать отдельный файл с node-cron и запустить его pm2, тоже отдельный процесс будет
источник

r

rev8ati in Боты на Telegraf
Johnny Doe
не удивилюсь что задача будет что-то типа рассылки по времени )
да, только отдельным процессом, чтобы не мешать работе с базой данных другим юзерам
источник

JD

Johnny Doe in Боты на Telegraf
rev8ati
да, только отдельным процессом, чтобы не мешать работе с базой данных другим юзерам
для рассылки тебе не надо бота клонировать, отправляй http запросом
источник

KL

Kirill "Loskir&... in Боты на Telegraf
rev8ati
угу, а новый объект телеги будет с тем же токен работать ?
какой передашь в него, такой и будет. учти, что у нового процесса нет почти никакой связи со старым.
источник

r

rev8ati in Боты на Telegraf
Kirill "Loskir" 🍏16+14 Loskutov
какой передашь в него, такой и будет. учти, что у нового процесса нет почти никакой связи со старым.
ну мне главное чтоб сам бот был тот же, логика независимая
источник

JD

Johnny Doe in Боты на Telegraf
rev8ati
ну мне главное чтоб сам бот был тот же, логика независимая
коротко, все что ты планируешь сделать - это фигня полная )
источник

r

rev8ati in Боты на Telegraf
Johnny Doe
коротко, все что ты планируешь сделать - это фигня полная )
почему ?
источник

f

fulcanelly in Боты на Telegraf
rev8ati
да, только отдельным процессом, чтобы не мешать работе с базой данных другим юзерам
если сделаешь aysnc оно тоже мешать не будет
источник

JD

Johnny Doe in Боты на Telegraf
rev8ati
почему ?
по идее даже отдельным процессом выносить ничего не надо, все спокойно может уживаться в одном скрипте.

но если тебе очень хочется рассылку отдельно, то для этого совершенно не надо создавать еще один клон бота, отправка сообщений делается одной строкой
fetch('https://api.telegram.org/bot<token>/sendMessage?chat_id=<id>&text=<text>')
источник

r

rev8ati in Боты на Telegraf
fulcanelly
если сделаешь aysnc оно тоже мешать не будет
будет, пока бот не закончит рассылку, он не будет отдавать ответы на запросы в базу данных, будет висеть ожидание, решается путём установки тайминга в 250 - 500 мс, но если запустить отдельным процессом это должно зарешать
источник

JD

Johnny Doe in Боты на Telegraf
rev8ati
будет, пока бот не закончит рассылку, он не будет отдавать ответы на запросы в базу данных, будет висеть ожидание, решается путём установки тайминга в 250 - 500 мс, но если запустить отдельным процессом это должно зарешать
а ты делай нормально рассылку, через очередь и таймер, и тогда никаких проблем не будет
источник

r

rev8ati in Боты на Telegraf
Johnny Doe
а ты делай нормально рассылку, через очередь и таймер, и тогда никаких проблем не будет
const delay = ms => new Promise(resolve => setTimeout(resolve, ms))

await User.find({ sent: true }).cursor()
     .eachAsync(async function (user) {
       await sendHoroscope(bot, user);
       await delay(250);
     })
источник