Size: a a a

2020 February 09

c

crux in Modern::Perl
Anton Petrusevich
хоть самопальная, хоть "заимствованная" из редиса, кролика и прочих постгресов
У постгреса 8000 байт максимум в pubsub. Почему то. Хотя, возможно, это конфигурится.
источник

AK

Andrey Konovalov in Modern::Perl
https://perlbanjo.com/16bd4f2004
Всё-таки я победил эту мега-задачу
источник

AK

Andrey Konovalov in Modern::Perl
На выходе bit_scan_f - список битовых позиций, установленных в 1 во входном значении
источник

AK

Andrey Konovalov in Modern::Perl
# check boundary cases:
$ ./greets_complx.pl $(((1<<32) -1))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]
$ ./greets_complx.pl 0
[]
# normal case
$ ./greets_complx.pl 12345
[0, 3, 4, 5, 12, 13]
источник

AK

Andrey Konovalov in Modern::Perl
Народ, а никто не сталкивался с регулярно обновляемым API на базе парсеров для avito? Я как-то делал для себя парсер, но он довольно быстро устарел, поскольку там нехорошие люди меняют HTML регулярно
источник

AS

Alexey Stavrov in Modern::Perl
crux
При установке соединения с вебсокетом подписываешься на свой эвент, в обработчике отправляешь полученное в сокет. В контроллере POST кидаешь этот эвент с сообщением в данных.

В гипножабе с несколькими воркерами это тоже будет работать, эвенты прокидываются на все воркеры.

Но это если у тебя один сервер. Если расчет на несколько с неким балансировщиком, то, как уже предложили - например, Redis pubsub или какой-нибудь MQ. Только для моджо нет поддержки редис кластера, что для меня лично недавно было неприятным сюрпризом.
> В гипножабе с несколькими воркерами это тоже будет работать, эвенты прокидываются на все воркеры.

Ого, не верится. Предоставьте доказательства.
источник

c

crux in Modern::Perl
Alexey Stavrov
> В гипножабе с несколькими воркерами это тоже будет работать, эвенты прокидываются на все воркеры.

Ого, не верится. Предоставьте доказательства.
Да я не на суде вроде. Я как бы использовал это в работе неоднократно. Не верится - просто попробуйте.
источник

c

crux in Modern::Perl
Alexey Stavrov
> В гипножабе с несколькими воркерами это тоже будет работать, эвенты прокидываются на все воркеры.

Ого, не верится. Предоставьте доказательства.
Ну вот я и поплатился за резкость ответа. Пошёл всё же посмотрел в свой же код годовалой давности, на основе которого фигакнул такое заявление и нашёл там pg pubsub.

Искажения памяти )

Действительно - внутренние эвенты получает только один воркер, на все надо прокидывать через что-то ещё.
источник

AS

Alexey Stavrov in Modern::Perl
Ага, я хотел написать, что первый раз нашел баг в проекте, код которого не видел, но побоялся написать, так как не уверен был на 💯, а к компу подойти не разрешают.
источник

c

crux in Modern::Perl
Командная работа )
источник

AP

Anton Petrusevich in Modern::Perl
Andrey Konovalov
# check boundary cases:
$ ./greets_complx.pl $(((1<<32) -1))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]
$ ./greets_complx.pl 0
[]
# normal case
$ ./greets_complx.pl 12345
[0, 3, 4, 5, 12, 13]
а что за задача то? реально не могу припомнить зачем такое надо, обычно, таки, просто делается "и" по нужной битовой маске
источник

AP

Anton Petrusevich in Modern::Perl
т.е. обычно вопрос стоит "установлены ли биты 4, 7, 9", а не список всех установленных
источник

AP

Anton Petrusevich in Modern::Perl
crux
У постгреса 8000 байт максимум в pubsub. Почему то. Хотя, возможно, это конфигурится.
The “payload” string to be communicated along with the notification. This must be specified as a simple string literal. In the default configuration it must be shorter than 8000 bytes. (If binary data or large amounts of information need to be communicated, it's best to put it in a database table and send the key of the record.)
источник

AP

Anton Petrusevich in Modern::Perl
было бы неплохо, чтобы пг отменил лимит, введя "теневую таблицу" для превышающих пейлоадов и самостоятельно туда скидывал их...
источник

AK

Andrey Konovalov in Modern::Perl
Anton Petrusevich
т.е. обычно вопрос стоит "установлены ли биты 4, 7, 9", а не список всех установленных
Есть префиксное дерево, в нём из узла торчит 128 слотов (нижняя половина ASCII), какие-то слоты заполнены, есть "продолжения", какие-то не заполнены, там undef. Есть битовая карта, по которой понятно, какие значения есть. Когда нужно обойти всё дерево, мы заранее не знаем, в каких позициях таблицы слотов есть значения, а в каких нет. Соотв, из битовой макси извлекаются номера установленных бит - и делается проход по соотв номерам таблицы слотов
источник

AK

Andrey Konovalov in Modern::Perl
Условно,
[....,"a",...,"g",..."p", ...] - в таблице слотов
А в битовой маске - 1-цы в тех номерах бит, которые соотв. заполненным слотам
источник

AP

Anton Petrusevich in Modern::Perl
я нихрена не понял. задача без начала
источник

AK

Andrey Konovalov in Modern::Perl
Жизнь - вообще такая задача без начала и явного смысла
источник

AP

Anton Petrusevich in Modern::Perl
тебе сильно критично было это на асме делать?
источник

AP

Anton Petrusevich in Modern::Perl
и вообще на си?
источник