Виктор
Ты имеешь в виду что-то вроде stream_wrapper_register('file', vfsStreamWrapper::class)?
Михаил
Написал бота. Развернул его на кубере - всё работает. Решил что пусть он задачки на выполнения тянет с другого сервиса. Написал сигнальный сервер. Логика следущая:
1) бот отправляет на сигнальный сервер запрос на получение задачи и передаёт свой id
2) сервер открывает транзакцию, тянет задачку, которую не брали или которую кто-то взял, но давно не отчитывался по ней (упал)
3) проставляет в этой задачке id бота и время взятия
4) коммитит транзакцию и флашет
Бд у меня к которой обращается pod в кубере и контейнер в локальном докере - одна и та же (буквально подключаюсь к серверу внешнему).
Локально всё работает. Я ставлю задачу, бот обращается к ней, в задаче появляется текущей timestamp и id бота, после того как задача выполнена она закрывается
Но п*дор который в кубере крутится тоже вроде берёт задачу, но почему-то НЕ проставляет данные в бд. Как будто commit или flush не отрабатывает. Но при этом бот начинает выполнять задачу, то есть респонс вернулся.
Вот в чём может быть прикол, в чём разность этих env? Причем контейнеры что в кубере что локально в докере идентичны.
А ещё говорят что gpt захватит мир и лишит программистов работы
Лол, оно само заработало
Kirill
Kirill
но это наркота адская и супер костыли
Kirill
все файлы в пыхе по дефолту через file стрим читаются
Kirill
даже include + require
Thawne
Всем привет, не подскажите, залил пустой симфони проект на авс и там при заходе показывает просто контент index.php
Thawne
Как текст
Thawne
The Ant
@dexplon не поделишься конфигом докира под еластик? ) который композ еластик чят мертвый. А у меня лапки, нифига не понимаю как это говно работает...
Михаил
Павел
@dexplon не поделишься конфигом докира под еластик? ) который композ еластик чят мертвый. А у меня лапки, нифига не понимаю как это говно работает...
elasticsearch:
image: "elasticsearch:${ELK_VERSION}"
container_name: ${COMPOSE_PROJECT_NAME}_elasticsearch
environment:
ES_JAVA_OPTS: "-Xmx512m -Xms256m"
ELASTIC_PASSWORD: changeme
# Use single node discovery in order to disable production mode and avoid bootstrap checks
# see https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html
discovery.type: single-node
path.repo: "/usr/share/elasticsearch/data/backup"
ports:
- "9200:9200"
- "9300:9300"
volumes:
- ./docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
- ./var/elasticsearch-data:/usr/share/elasticsearch/data
На правильность не претендую, енвы можно убрать.
config:
---
## Default Elasticsearch configuration from Elasticsearch base image.
## https://github.com/elastic/elasticsearch/blob/master/distribution/docker/src/docker/config/elasticsearch.yml
#
cluster.name: "docker-cluster"
network.host: 0.0.0.0
## X-Pack settings
## see https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-xpack.html
#
xpack.license.self_generated.type: basic
xpack.security.enabled: true
xpack.monitoring.collection.enabled: true
Но это локал окружение, что там в проде хз
Павел
The Ant
Alexey Mishurovskiy
Парни, всем привет! как правильно цепляться к отказоустойчивому кролику?
Проблема: Есть кластер из 3-х нод, работает через балансер. все на Symfony Messenger. Проблема простая - продюсер пихает сообщение в очередь, дальше оно кладется на "какую-то" из нод.
Консюмер стандартный - мессенджеровский, запускается в супервизоре, но он подключается также к "какой-то" ноде и в итоге до перезапуска на других нодах просто копятся сообщения..
100% многие уже решали эту проблему, интересно как.
Юра
Vlad
тип очереди какой используете?
Михаил
https://ucare.cs.uchicago.edu/pdf/socc16-cos.pdf
Ярослав
Ярослав
Парни, всем привет! как правильно цепляться к отказоустойчивому кролику?
Проблема: Есть кластер из 3-х нод, работает через балансер. все на Symfony Messenger. Проблема простая - продюсер пихает сообщение в очередь, дальше оно кладется на "какую-то" из нод.
Консюмер стандартный - мессенджеровский, запускается в супервизоре, но он подключается также к "какой-то" ноде и в итоге до перезапуска на других нодах просто копятся сообщения..
100% многие уже решали эту проблему, интересно как.
Quorum Queues:
• Messages in Quorum Queues are stored in a replicated log, managed by the Raft protocol. Each message must be written to a majority of nodes (achieving a quorum) before it is considered committed and safe.
• The storage method ensures that even if some nodes fail, the integrity and order of the message log are maintained.
Standard Queues:
• In non-mirrored Standard Queues, messages are stored locally on the node where the queue resides. If the node fails, the messages in that queue may be lost unless other persistence measures are in place.
• In mirrored setups, messages are copied to several nodes (mirrors) to prevent data loss in case of node failure.
Alexey Mishurovskiy
Alexey Mishurovskiy
В 6.4 нет возможности указать тип очереди
Ярослав
Alexey Mishurovskiy
Хм
Alexey Mishurovskiy
Через messenger?
Ярослав
Ярослав
Посмотри на свои требования, тебе нужны либо mirror queues либо quorum queues
Ярослав
Quorum медленный, но имеет высокую доступность и высокую консистентность
Vlad
Vlad
Ярослав
Юра
Ну напиши свою логику выбора хоста
Юра
Если нет сообщений какое-то время пусть происходит реконект к другому хосту
Юра
Заведи в редисе какой-то ключ в который воркер пишет таймстамп последнего сообщения
Юра
И на его основе ключа любой твой другой воркер сможет проверить а есть ли что вообще где-то еще
Юра
Или слепо делай реконект
Юра
Тут как обычно будут какие-то компромиссы
Юра
Невозможно сделать супер быстро и полностью консистентно
Павел
Когда на запись идет балансировщик с раундробином, а чтение идет на прямой коннект
Alexey Mishurovskiy
Спасибо, а где у тебя это сделано - у меня все в yaml сконфигурировано
Vlad
в том же фреймворке что и у тебя
Vite4eg
Привет. Посоветуйте плиз. Есть некие задания, которые необходимо внутри CRM выполнять. Например, обновление компаний из Excel файла. У меня созданы скрипты под такое дело, каждый раз обращаются ко мне.
Я бы хотел это дело отдать менеджеру.
Я могу завернуть всё это дело в cli команды, но давать ssh менеджеру не хочется. Какие ещё варианты есть?
Maks
тгбот
Vite4eg
Maks
или если CRM Б24, то туда встраиваться ifame а-ля миниап и от туда можно дерать ручки
Vite4eg
Да, Б24 коробка. Но там с их миниапами куча возни
The Ant
Vite4eg
Команда не одна. Некоторые долгие. Минут по 20-30
Михаил
Vite4eg
А что кнопочки делают? Задачи в очередь ставят?
Михаил
Ну да
И всё ещё зависит от црм. В некоторых црм тоже можно кнопочки делать и на них хуки вешать
Смотрите в сторону symfony messenger
Михаил
Кто-то на кнопочку нажал, мессадж отправился. Воркер считал мессад и выполняет. Выполнил - мессадж удалился
Михаил
Можно ещё symfony workflow подключить для ведения машины состояний в бд
Vite4eg
Андрей
Ищу заинтеpeсованных в быстром и надёжном умножeнии кaпитaлa на Bybit
С моей стороны информация о выгодных сдeлках с crуpto - с вашей % от чистой выpyчки
Дoxoд от 2000$ в неделю
Жду вопросы в лс
Вадим
привет!
подскажите пожалуйста если я хочу в JSON+LD добавить ссылки на предыдущую и следующую сущность, там может есть какие-то атрибуты для этого специальные?
Михаил
Maks
в JSON+LD нет стандартных атрибутов для указания ссылок на предыдущую или следующую сущность.
Maks
Можно через кастомные типы запелить
Роман
Привет Ребят кто может кинуть свой крутой пет проект на симфони оформленный по корпоративным стандартам?
Andrii
Nikolay
Maks
Пет проекты, как и друзей, не кидают.
Роман
Код стаил, архитектура симфони приложений, то как принято в коммерческих проектах сейчас
Роман
С целью написания качественных пет проектов, так как коммерческого опыта с симфони нет, не видел как принято писать
Роман
С какой целью интересуетесь?
Vlad
везде пишут по разному, тебе это ничем не поможет
Роман
Общие рекомендации по симфони то имеются наверное
Роман
Там же своя система yml, dql дичи и прочие особенности в отлит от лары вот хочется узнать как это используют профи. Ладно раз не у кого нет проектов 🤷 , который для этого и созданы. Для демонстрации навыков
Doctor
Пет-проекты созданы для демонстрации навыков?.. Это серьёзное мнение? Или последняя попытка получить желаемое в стиле "неужели тут нет мужчин, готовых помочь хрупкой девушке"?
Павел