Vladimir
Это единственная проблема
Nikita
Nikita
На 24 дня даже хватит
Nikita
Короче, для таска "вызывать функцию раз в 12 часов" модуль крона не нужен
KlonD90
хз для стабильности setTimeout и долгие задачи явно не то что надо )
John
А почему не поставить крон задачу на самом хостинге? В каждой си панели там и интерфейс удобный
John
Тем более setTimeout не точно считает, из-за асинхронности как раз, на клиенте, по крайней мере так, в долгосрочной перспективе хз на сколько съедет выполнение
Sergey
John
С чем синхронизировать?
Sergey
John
Тю
Sergey
Все очень просто
John
Та да)
Nurik
Sergey
Кто нибудь делал ipc между процессами на одном сервере?
Sergey
Без http
Sergey
Пусть процессы будут на разных языках
Sergey
Какие варианты есть
Sergey
Линух сервер
Nurik
fifo
Nurik
Делал на php. Но были проблемы с форкнутыми процессами.
Nurik
Можно еще прям в оперативке держать. shmop
Sergey
Sergey
один на ноде, другой на го, например
Sergey
да вот я тож к этому склоняюсь ((
Nurik
процессы на разных языках
А это не имеет значения. Вы будете работать с бинарными данными напрямую. Просто нужно аллоцировать необходимый размер вроде
xelaok
Может unix sockets
Sergey
Sergey
так се
Serhiy
Было бы больше времени сделал бы на кроликах. Но его не было.
Sergey
короч pub/sub самое оно
Sergey
ну да, я предполагал так
Nurik
Может unix sockets
Ну если низкоуровневые вещи не подходят тогда лучше сразу брокер сообщений прикрутить. Если еще и приоритезация трафика нужна. aka QoS (но выше уровнем)
Nurik
Можно изощриться и заюзать dbus😝
Vladimir
@sergeysova а почему не http то?
Sergey
Sergey
Vladimir
А через редис типа нет оверхеда?)
Evgeny
Mkfifo / mkpipe
Sergey
Vladimir
Ну естественно нет
Vladimir
У тебя лишний демон плюс дополнительные раундтрипы
Vladimir
Протокол может чуть попроще, да
Nurik
идея мне не оч понятна
Идея, в том чтобы заюзать общую для всего шину dbus, в качестве награды получаем шину для общения поверх тех же unix socket
Nurik
Mkfifo / mkpipe
актупльно если процессов не много. Иначе много работы.
Sergey
Vladimir
Ну dbus как то не для серверов все таки
Evgeny
Vladimir
Для сервисов на десктопе
Nikita
Nikita
А ещё на ноде process.hrtime есть, а в браузере — performance.now
Evgeny
Тмпфс и там файло. А триггер чтения - сигналы или айнотифай. Ну если хттп оверхед а редис норм
Nikita
Date.now сползёт при смене системного времени, а эти два — нет.
Sergey
Sergey
но я в общем-то задал вектор мышления
Nurik
Для сервисов на десктопе
и вроде поэтому и не масштабируется из-за чего и бесполезен будет, если вдруг придётся масшабировать.
Anonymous
6.0 в мастере
Nurik
меньше, насколько мне известно
Если по шине планируется гнать очень много данных. то можно упрёться в redis. Ибо там он однопоточный насколько я знаю. Если не так сильно нужна персистетность то еще можно ZMQ. Но redis всё-же легче и проще. Хотя архитектурно для такой задачи мне кажется ZMQ ближе.
Sergey
zmq?
Sergey
я знаю только rmq
Vladimir
0mq
Anonymous
Ø
Gleb
zmq?
ZeroMQ - это как очередь, но без брокера, тупо между серверами.
Sergey
надо погуглить
Sergey
спасибо
Gleb
Gleb
Но ZMQ может терять сообщения, в теории. Короче, если что-то говоришь мёртвому процессу и сам умер - сообщения будут потерянны.
Nurik
Gleb
Ну не UDP, по пути он ваше сообщение не потеряет :) Просто потому что он не складывает очередь не ушедших сообщений в некое внешнее хранилище. Это тупо маленькая либа, которая берёт ваш message и шлёт его по TCP напрямую на соседний сервер.
Gleb
Если нужна большая-большая шина, то можно попробовать Kafka. Эта сколько надо, столько и пережуёт. Хотя тут надо взвесить твой сервис, может быть очень уж большим оверкилом.
Denis
Коллеги, а как лучше тестировать REST API сервисы?
1. SaaS тулзы (SOAP UI и пр) vs Скрипты (Node.js, bash, etc)
2. Реальные данные (после деплоя) vs Mock-данные
Sergey
Sergey
фиче тесты
Denis
Одна большая система может состоять из 7-10 микросервисов, которые неплохо бы тоже отдельно тестировать, чтобы понимать природу возникающей ошибки