Size: a a a

Node.js — русскоговорящее сообщество

2020 March 27

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
BB
request.body.sub_days = 30
parseInt(request.body.sub_days, 10)
источник

B

BB in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
parseInt(request.body.sub_days, 10)
Спасибо, теперь работает как хотел)
источник

۞

۞ ۞ ۞ in Node.js — русскоговорящее сообщество
Товарисчи, нужна помощь.
В наличии: Пожилой телеграм бот node.js строптиво отказывающийся выполнять команды господина. Бот работал через вебхук, есть подозрения что из-за отключения аккаунта на облаке (аналог клаудфара) разорвалась связь между доменом и хостингом. Возможны другие причины. Код рабочий. С меня два чаю.
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
кажется сейчас в ноде никто не парится, что вот такой код:

redis.get('key', function(err, value) {
   redis.set('key', value * 2);
});


будучи вызванный одновременно двумя пользователями приведет к проблемам:

user1: redis.get('key') -> 1
user2: redis.get('key') -> 1
user1: redis.set('key', 1 x 2) -> 2
user2: redis.set('key', 1 x 2) -> 2


но при этом если решать проблему через локи, то довольно быстро люди придут к проблеме дедлоков. получается история по спирали развивается )
источник

d

dettrix in Node.js — русскоговорящее сообщество
۞ ۞ ۞
Товарисчи, нужна помощь.
В наличии: Пожилой телеграм бот node.js строптиво отказывающийся выполнять команды господина. Бот работал через вебхук, есть подозрения что из-за отключения аккаунта на облаке (аналог клаудфара) разорвалась связь между доменом и хостингом. Возможны другие причины. Код рабочий. С меня два чаю.
так проверьте подключение вебхук, есть же метод getWebhookInfo?
источник

I

Igor in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
кажется сейчас в ноде никто не парится, что вот такой код:

redis.get('key', function(err, value) {
   redis.set('key', value * 2);
});


будучи вызванный одновременно двумя пользователями приведет к проблемам:

user1: redis.get('key') -> 1
user2: redis.get('key') -> 1
user1: redis.set('key', 1 x 2) -> 2
user2: redis.set('key', 1 x 2) -> 2


но при этом если решать проблему через локи, то довольно быстро люди придут к проблеме дедлоков. получается история по спирали развивается )
наверное, не нужно вызывать такой код одновременно
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
Igor
наверное, не нужно вызывать такой код одновременно
локи как раз и нужны для этого
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
альтернатива — однопоточная очередь
источник

۞

۞ ۞ ۞ in Node.js — русскоговорящее сообщество
dettrix
так проверьте подключение вебхук, есть же метод getWebhookInfo?
не знаю как к нему воззвать, утка определенных ответов не дает по запросам как использовать метод... единственно до чего дорылся это тг апи, но яснее не стало, бота делал не я, кодер который делал и вел поддержку удалил аккаунт поэтому теперь бьюсь над ботом сам не владея инструментами :(
источник

d

dettrix in Node.js — русскоговорящее сообщество
۞ ۞ ۞
не знаю как к нему воззвать, утка определенных ответов не дает по запросам как использовать метод... единственно до чего дорылся это тг апи, но яснее не стало, бота делал не я, кодер который делал и вел поддержку удалил аккаунт поэтому теперь бьюсь над ботом сам не владея инструментами :(
метод используется без параметров, сначала дайте любую команду боту из приложения телеграм, потом отправьте get запрос с сервера на https://api.telegram.org/bot(вашТокен)/getWebhookInfo и смотрите ответ, если поле url пустое значит подключения вебхук нет, если же есть, смотрите поля last_error_date и last_error_message там будет какой-никакой ответ почему не доходит
источник

۞

۞ ۞ ۞ in Node.js — русскоговорящее сообщество
dettrix
метод используется без параметров, сначала дайте любую команду боту из приложения телеграм, потом отправьте get запрос с сервера на https://api.telegram.org/bot(вашТокен)/getWebhookInfo и смотрите ответ, если поле url пустое значит подключения вебхук нет, если же есть, смотрите поля last_error_date и last_error_message там будет какой-никакой ответ почему не доходит
сейчас путем натыкивания обнаружил такую запись (консоль сервера на котором стоит бот). Это говорит, что вебхук привязан?
источник

d

dettrix in Node.js — русскоговорящее сообщество
۞ ۞ ۞
сейчас путем натыкивания обнаружил такую запись (консоль сервера на котором стоит бот). Это говорит, что вебхук привязан?
это говорит, что один из промисов отвалился, так как вы не используете обработку исключения, то есть на нем нет блока .catch
источник

d

dettrix in Node.js — русскоговорящее сообщество
۞ ۞ ۞
сейчас путем натыкивания обнаружил такую запись (консоль сервера на котором стоит бот). Это говорит, что вебхук привязан?
и вообще, на сколько я понимаю, это сильно отрезаная часть того, что вывела консоль..
источник

۞

۞ ۞ ۞ in Node.js — русскоговорящее сообщество
верно вы понимаете
источник

۞

۞ ۞ ۞ in Node.js — русскоговорящее сообщество
dettrix
и вообще, на сколько я понимаю, это сильно отрезаная часть того, что вывела консоль..
источник

d

dettrix in Node.js — русскоговорящее сообщество
۞ ۞ ۞
нет доступа к апи телеграм, я такое же получал, скорее всего блокировка нашего великого и ужасного..
источник

۞

۞ ۞ ۞ in Node.js — русскоговорящее сообщество
dettrix
нет доступа к апи телеграм, я такое же получал, скорее всего блокировка нашего великого и ужасного..
это не ошибка?
источник

۞

۞ ۞ ۞ in Node.js — русскоговорящее сообщество
dettrix
нет доступа к апи телеграм, я такое же получал, скорее всего блокировка нашего великого и ужасного..
другой сервер от этого же провайдер поддерживает соединение с тг апи, но там бот на питоне
источник

V

Vint in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
кажется сейчас в ноде никто не парится, что вот такой код:

redis.get('key', function(err, value) {
   redis.set('key', value * 2);
});


будучи вызванный одновременно двумя пользователями приведет к проблемам:

user1: redis.get('key') -> 1
user2: redis.get('key') -> 1
user1: redis.set('key', 1 x 2) -> 2
user2: redis.set('key', 1 x 2) -> 2


но при этом если решать проблему через локи, то довольно быстро люди придут к проблеме дедлоков. получается история по спирали развивается )
Задедлочить на редисе весьма тяжело. Если только написать совсем кривую реализацию.
А приведённый пример вообще не требует локов для избавления от race condition, достаточно использовать атомарные операции (транзакции).
источник

d

dettrix in Node.js — русскоговорящее сообщество
۞ ۞ ۞
другой сервер от этого же провайдер поддерживает соединение с тг апи, но там бот на питоне
значит дело не в блокировке.. ну а что может висеть на порту 27017? монга? тор? куда-то же он ломится.. я в смятении
источник