
Josh
20.07.2018
08:46:22


Mark
20.07.2018
08:48:37
Есть скрапер ссылок, когда все ссылки готовы - лупом вызвается другая labmda функция с параметром InvocationType: "Event", как гласит документация - используется один контейнер и по идеи вторая функция должа иметь доступ к папке tmp из первой функции
Скрапер использует puppeteer, так как lambda имеет ограничение в 50mb, chrome грузится из S3 бакета внутрь первого скрапера, после устанавливается в tmp, цель - во второй функции использовать уже скачанный и установленный chrome из первой функции, чтобы сократить evaluation time
Проблема - во второй функции папка tmp - пустая, хотя по логике там должен быть установленный chrome из первой функции
У кого-нибудь есть мысли по этому поводу?
UPD:
Как и ожидалось - для каждой вызванной функции из первой - используется одна и та-же tmp папка, но почему-то при вызове первый раз второй функции - она пустая, а при каждом последующем - туда качается новый хром, но при этом сука папка имеет уникальный префикс, пример`puppeteer_dev_profile-6WBgtt, puppeteer_dev_profile-j3JW2o`, что делать как быть я заебался решать


Voskresus
20.07.2018
08:48:41

Google

Again
20.07.2018
08:48:42
ну примерно

Josh
20.07.2018
08:49:15

Voskresus
20.07.2018
08:49:50

Mark
20.07.2018
08:55:36
Че, может мне теперь поможем?

Josh
20.07.2018
08:58:52
имхо те, кто в онлайне, не сталкивались

Mark
20.07.2018
08:59:02
Окей. Давайте с другой стороны
Есть папки puppeteer_dev_profile-6WBgtt, puppeteer_dev_profile-j3JW2o, каждый раз папка с новым идентификатором, как в fs.readdir указать папку без прямого указания идентификатора, чтобы он просто открыл первую папку к примеру?

Voskresus
20.07.2018
08:59:41

Mark
20.07.2018
09:00:12
Просто перейти внутрь папки, которая всегда имеет уникальный идентификатор

Voskresus
20.07.2018
09:00:39

Mark
20.07.2018
09:00:46
По типу path.join(path.sep, 'tmp', `puppeteer_dev_profile-*`), но с * не воркает

Voskresus
20.07.2018
09:01:49

Google

Voskresus
20.07.2018
09:02:10
у тебя есть папка в которой ты хочешь найти эту папки с уникальным id ?

Mark
20.07.2018
09:03:15
Есть папка /tmp/, внутри папки при каждом вызове функции генерируется папка с уникальным id, нужно зайти в первую сгенерированную папку и посмотреть, что за херня там творится

Michael ?
20.07.2018
09:03:16

Voskresus
20.07.2018
09:04:00

Michael ?
20.07.2018
09:04:02
В смысле инфу о папке, в которой лежат эти, с айдишниками

Mark
20.07.2018
09:04:43
Окей, я могу взять все файлы/папки из tmp в массиве и потом перейти в первую папку, но что-то мне не нравится идея с двумя проходами, думаю можно за раз

?
20.07.2018
09:05:02

Mark
20.07.2018
09:05:22
Тупорылая Lambda. Говно а не система
Идея хорошая, реализация - говно
Да в пизду короче, я еще в пятницу так себе мозги не парил

Josh
20.07.2018
09:08:25
ты так тильтуешь разительно спустя пару часов, не верю, что несколько недель бился ))

Voskresus
20.07.2018
09:09:18

Mark
20.07.2018
09:10:15

Voskresus
20.07.2018
09:26:05
bot.telegram.sendPhoto(context.telegram_id, __dirname + `/message/46.png`) такого пачта должно быть достаточно ? почему фотка на отправляется ?

Taras
20.07.2018
09:26:54
подскажите, пожалуйста, где можно почитать про основные понятия node js, архитектуру приложений ?
спасибо

not an Alex
20.07.2018
09:34:19
всем привет
не знаю как сформулировать вопрос, но постараюсь
у меня есть два id пользователей, которые связаны между собой.

Grigorii
20.07.2018
09:36:36

not an Alex
20.07.2018
09:36:39
есть только одна идея - дублировать данные
то есть
id1 : id2
id2 : id1

Google

not an Alex
20.07.2018
09:37:18
но это выглядит как большой костыль
в процессе работы приложения нужно будет в зависимости от одного id искать другое

Mikhail
20.07.2018
09:38:33

not an Alex
20.07.2018
09:39:01
два пользователя
что-то типа чата
когда один пользователь присылает сообщение, нужно найти другого пользователя, которому это сообщение предназначается

Grigorii
20.07.2018
09:39:44
Уточни хоть, в какой сфере вопрос. По ноде, или по проектированию реляционных бд. Или что-то другое

not an Alex
20.07.2018
09:39:58
нод
данные сохраняются в памяти
оперативной
это вообще должен быть бот для телеги
думал, может Redis чем-то поможет

Mikhail
20.07.2018
09:42:17

not an Alex
20.07.2018
09:43:17
есть два пользователя которые ведут беседу через посредника, то есть бота
бот принимает сообщение от одного пользователя, смотрит с каким пользователем сейчас идет беседа, и отправляет другому пользователю сообщение

Mikhail
20.07.2018
09:44:33

not an Alex
20.07.2018
09:44:54
все вместе ?

?
20.07.2018
09:52:59

not an Alex
20.07.2018
09:53:59
socket.io не подойдет, я использую node-telegram-bot-api, он и отвечает за бота

Mikhail
20.07.2018
09:57:47

Google

Again
20.07.2018
09:58:03

?
20.07.2018
09:59:49


not an Alex
20.07.2018
10:01:39
хз, ещё не добрался (читал тут, рекомендуют telegraf, будем его смотреть). Ну, как вариант решения:
let User = {
forwardTo: id,
…
};
где id - айди пользователя, кому отсылать сообщения.
Но кажется мне, что всё же socket.io.
сокеты, по идее, подойдут когда пользователи напрямую подключаются к серверу, а в этом случае посредником выступает телеграм, да еще и через бота, который контролирует процесс общения двух пользователей
в таком случае, мне нужно, например, когда пользователь с id 111 отправляет сообщение, то его должен получить пользователь с id 222. И когда пользователь с id 222 отправляет сообщение, оно должно идти пользователю c id 111. Нужно что-то типа двунаправленного массива значений


Таймураз
20.07.2018
10:03:49
есть два пользователя которые ведут беседу через посредника, то есть бота
Чтобы определить собеседника, нужно связать одного с другим. Как связать однородные сущности?
У тебя есть обязательная сущность- пользователь. Он может как переписываться с другим пользователем, так и не переписываться. Также он может общаться с множеством пользователей
Если хочешь создать беседу- нужно также учесть и это
В итоге, тебе нужно создать 2 таблицы- таблицу пользователей и чатов (бесед)

not an Alex
20.07.2018
10:04:24

Таймураз
20.07.2018
10:05:16
Тогда сделай таблицу user__user__chat
У которой первичный ключ состоит и двух полей- id1 id2

Vladimir
20.07.2018
10:05:20
всем привет, а подскажите, как потенциально решить такую задачу, что-то я никак не могу сообразить
function invalid(cb) {
setInterval(() => {
cb(null);
}, 1000);
}
test('double callback', (done) => {
const cb = jest.fn().mockImplementation((err) => {
expect(err).toBeNull();
expect(cb).toHaveBeenCalledTimes(1);
done();
})
invalid(cb);
});
нужно сделать, чтобы тест фейлился
вариант мокать таймеры не принимается, т.к. интервал тут исключительно для примера
допустим я интеграционный тест пишу и у меня нет контроля за какой-то другой подсистемой

Евгений
20.07.2018
10:59:34

Grigoriy
20.07.2018
11:19:16

Mark
20.07.2018
11:20:40

Grigoriy
20.07.2018
11:21:18


Mark
20.07.2018
11:22:13
Спасибо, но я уже давно решил сам вопрос
Но там есть более интересный
Есть скрапер ссылок, когда все ссылки готовы - лупом вызвается другая labmda функция с параметром InvocationType: "Event", как гласит документация - используется один контейнер и по идеи вторая функция должа иметь доступ к папке tmp из первой функции
Скрапер использует puppeteer, так как lambda имеет ограничение в 50mb, chrome грузится из S3 бакета внутрь первого скрапера, после устанавливается в tmp, цель - во второй функции использовать уже скачанный и установленный chrome из первой функции, чтобы сократить evaluation time
Проблема - во второй функции папка tmp - пустая, хотя по логике там должен быть установленный chrome из первой функции
У кого-нибудь есть мысли по этому поводу?
Давайте ребята, шевелим извилинами, я уже пол месяца мучаюсь с этой хренью, мне нужна помощь, потому-что я начинаю тихо ненавидеть AWS и в особенности Lambda
Правда, буду неописуемо рад за любую помощь с решением
UPD:
Как и ожидалось - для каждой вызванной функции из первой - используется одна и та-же tmp папка, но почему-то при вызове первый раз второй функции - она пустая, а при каждом последующем - туда качается новый хром, но при этом сука папка имеет уникальный префикс, пример`puppeteer_dev_profile-6WBgtt, puppeteer_dev_profile-j3JW2o`, что делать как быть я заебался решать


Mike
20.07.2018
11:33:33
Господа, вопрос. Нужно передавать в воркера много очень длинных строк (200 mb) для параллельной записи в вокере на диск. Через postMessage это сейчас занимает порядка 2х секунд. Есть замечательная штука как transferable объекты, к которым правда не относится string, а из полезного только ArrayBuffer. Я правильно понимаю что нет быстрого способа выдернуть из строки ArrayBuffer не копируя данные? Хочется пихнуть эти строки в воркера без копирований.

Anton
20.07.2018
11:44:20

Mike
20.07.2018
11:45:29
речь про воркера в ноде, которые появились с 10.5.0 за флагом —experimental-worker

Google

Mike
20.07.2018
11:46:05
но на самом деле апи такое-же. Думал вдруг в ноде есть какой список zero-copy преобразования строки в ArrayBuffer и назад

IGOR
20.07.2018
11:52:18
всем привет!
Есть файл config.js
в нем:
export const db = {
database:'test',
username:'user',
password:'password'
}
в другом файле делаю
import {db} from '../config'
стартую и мне ругается
Unexpected token export
что может быть такое?

Kendr
20.07.2018
11:52:54
Или мжс?

IGOR
20.07.2018
11:53:49

Kendr
20.07.2018
11:54:17

IGOR
20.07.2018
11:55:04

Dmitriy
20.07.2018
11:55:18

Artemy
20.07.2018
11:55:27
import и export не будут
Остальное - будет

Евгений
20.07.2018
11:55:46

Artemy
20.07.2018
11:56:33
Чет в каждый чатик связанные с программированием влетают такие китайцы, причем каждый раз разный ?

Евгений
20.07.2018
11:56:51