Size: a a a

2020 June 25

ВЩ

Владимир Щёголев... in Go-go!
Владимир Столяров
ну так-то if и транслируется в условные переходы, не подойдет значит
ну, не совсем так. Всякие if, for, switch и пр. используют команду cmp (cmp AX, 0). Тут код можно написать без сравнения примерно так:

mov AX, 1000
loop:
//code
dec AX
jnz loop

т.е. тут нет прямого сравнения значений через cmp, которое предполагает if
источник

SZ

Sergey Zhdanov in Go-go!
вот еще спамер..
источник

SZ

Sergey Zhdanov in Go-go!
Переслано от سزاريج
Hello
источник

S

Serj in Go-go!
Александр Попов
вчера обсуждали тут с коллегами задачу на собес - вывести числа от 1 до 1000 (в консоль) не используя циклы и IF
короч, я заебнулся и вот https://play.golang.org/p/ReeR2ynVkEW
считается за решение?
з.ы., вообще пофиг на кривую логику и лишнюю переменную, главное, что работает
источник

AK

Andrey Kartashov in Go-go!
Leonid Starchenko
Есть более наркоманское решение) Используя рекурсию, делать зеркалку остатка счётчика, увеличивать его итп. И самое главное, делить на него после каждой итерации. Вроде бы в конечном итоге при делении на ноль всё должно закрыться xD
можно ещё селект использовать https://play.golang.org/p/UqSVZr7vxvX
источник

LS

Leonid Starchenko in Go-go!
Andrey Kartashov
можно ещё селект использовать https://play.golang.org/p/UqSVZr7vxvX
у тебя ошибка там
Нельзя исползовать циклы
источник

AK

Andrey Kartashov in Go-go!
где у меня цикл?
источник

AK

Andrey Kartashov in Go-go!
кстати идея с select/default уже высказывалась
источник

LS

Leonid Starchenko in Go-go!
Andrey Kartashov
где у меня цикл?
Хм, только что же их видел вроде)))
источник

AK

Andrey Kartashov in Go-go!
вместо канала с буфером на 1001 можно какой нибудь waitgroup сделать
источник

DP

Daniel Podolsky in Go-go!
но смысла нет во всем этом
источник

AK

Andrey Kartashov in Go-go!
абсолютли
источник

DP

Daniel Podolsky in Go-go!
к полезному эти все решения не приставишь
источник

DP

Daniel Podolsky in Go-go!
вот если то же самое, но с использованием новых-красивых генериков :)
источник

AK

Andrey Kartashov in Go-go!
циклы с генериками? Сразу возникают мысли о какой-то навороченной фигне как шаблоны в C++. Все читали Александреску, но мало кто применяет
источник

EK

Eduard Korolev in Go-go!
всем привет, хочу обсудить один кейс. Есть таблица в бд с сущностями. У сущности есть дедлайн и задача сделать нотификацию с напоминанием о дедлайне. Общая схема - запускаем цикл, в котором через каждые 5 минут запрашиваем 10 сущностей, которые еще не напоминались, и отправляем это в месседжер какой нить типо кафки. Вопрос - как масштабировать такую систему? Например как следить по сколько забирать записей за раз, или с каким таймаутом, или как целостность тут поддерживать, что бы 2 инстанса не забрали одни и теже сущности, SELECT FOR UPDATE делать? но когда тогда завершать транзакцию. Делать UPDATE + RETURNING и сразу помечать нотификации как обработанные, но тогда может возникнуть проблема, что сущность отметили как напомненную, а во время отправки в месседжер паника случилась и мы нифига не отправили
источник

F

For Friends in Go-go!
Всем добрый день.
источник

ЛА

Локоть Анатолий... in Go-go!
Eduard Korolev
всем привет, хочу обсудить один кейс. Есть таблица в бд с сущностями. У сущности есть дедлайн и задача сделать нотификацию с напоминанием о дедлайне. Общая схема - запускаем цикл, в котором через каждые 5 минут запрашиваем 10 сущностей, которые еще не напоминались, и отправляем это в месседжер какой нить типо кафки. Вопрос - как масштабировать такую систему? Например как следить по сколько забирать записей за раз, или с каким таймаутом, или как целостность тут поддерживать, что бы 2 инстанса не забрали одни и теже сущности, SELECT FOR UPDATE делать? но когда тогда завершать транзакцию. Делать UPDATE + RETURNING и сразу помечать нотификации как обработанные, но тогда может возникнуть проблема, что сущность отметили как напомненную, а во время отправки в месседжер паника случилась и мы нифига не отправили
Если вы знаете кол-во воркеров и воркер знает свой индекс, то воркер может брать только "свои" записи, например всего 3 воркера, каждый из трёх будет брать записи, остаток от деления id которых будет равен индексу воркера (0, 1,2).

Это разнесет процессинг воркерами изначально... Можно сделать транзакции и select for update, но если будут селектиться одни и те же строки, то эти запросы будут ждать друг друга и это негативно скажется на скорости процессинга.
источник

SZ

Sergey Zhdanov in Go-go!
может прикрутить очередь?
источник

EK

Eduard Korolev in Go-go!
Локоть Анатолий
Если вы знаете кол-во воркеров и воркер знает свой индекс, то воркер может брать только "свои" записи, например всего 3 воркера, каждый из трёх будет брать записи, остаток от деления id которых будет равен индексу воркера (0, 1,2).

Это разнесет процессинг воркерами изначально... Можно сделать транзакции и select for update, но если будут селектиться одни и те же строки, то эти запросы будут ждать друг друга и это негативно скажется на скорости процессинга.
спасибо, интересный вариант, о таком ни разу не думал
источник