Size: a a a

2021 February 03

E

EgorBo in pro.net
Ilya Chernoudov
то есть информация хранится в типе, а не в последних битах указателя на таблицу методов?
в методтейбле точно нет
источник

IC

Ilya Chernoudov in pro.net
EgorBo
в методтейбле точно нет
в метод тейбле хранится информация о mark GC
источник

IC

Ilya Chernoudov in pro.net
вот и я подумал, что оно там не должно затирать
источник

А

Александр in pro.net
Grigorii Kuzmin
коллеги, всем привет. Кто-то работал с brighter через rabbit mq? интересует, как вы делали обратное закидывание в очередь в случае неудачной обработки сообщения, когда хендлер падает

у MessageConsumer есть публичный метод Requeue, но только внутри хендлера я не могу к нему никак доступ получить: я не оперирую ни меседжем, ни меседж консюмером, у меня уже десериализованный объект на руках

https://github.com/BrighterCommand/Brighter/blob/63a1e53bb7c19b9bc09512d050fb4f3616e6cdd8/src/Paramore.Brighter.MessagingGateway.RMQ/RmqMessageConsumer.cs#L152
не работал с брайтером, но раббит, если включены подтверждения получения, а это, думаю, ваш случай, вернет все неподтвержденные сообщения в очередь, если клиент упадет. Т.е. в вашем случае при падении хэндлера надо убедиться, чтобы падал channel или подключение. Если падает только ваш код, то достаточно завернуть в try-catch и написать логику повтора. С другой стороны, если вы не можете обработать сообщение, то возвращать сообщение в очередь смысла мало, т.к. вы его после этого снова получите.
Позвольте встречный вопрос, почему вы используете brighter?
источник

GK

Grigorii Kuzmin in pro.net
Александр
не работал с брайтером, но раббит, если включены подтверждения получения, а это, думаю, ваш случай, вернет все неподтвержденные сообщения в очередь, если клиент упадет. Т.е. в вашем случае при падении хэндлера надо убедиться, чтобы падал channel или подключение. Если падает только ваш код, то достаточно завернуть в try-catch и написать логику повтора. С другой стороны, если вы не можете обработать сообщение, то возвращать сообщение в очередь смысла мало, т.к. вы его после этого снова получите.
Позвольте встречный вопрос, почему вы используете brighter?
Я пришёл на проект недавно и он тут был до меня
источник

DP

Denis Petukhov in pro.net
Александр
не работал с брайтером, но раббит, если включены подтверждения получения, а это, думаю, ваш случай, вернет все неподтвержденные сообщения в очередь, если клиент упадет. Т.е. в вашем случае при падении хэндлера надо убедиться, чтобы падал channel или подключение. Если падает только ваш код, то достаточно завернуть в try-catch и написать логику повтора. С другой стороны, если вы не можете обработать сообщение, то возвращать сообщение в очередь смысла мало, т.к. вы его после этого снова получите.
Позвольте встречный вопрос, почему вы используете brighter?
А если раббит упадёт то вернет фигу :}
источник

GK

Grigorii Kuzmin in pro.net
Вообще, я сам бы взял медиатр
источник

GK

Grigorii Kuzmin in pro.net
Но там нет поддержки распределённой очереди из коробки, емнип
источник

DP

Denis Petukhov in pro.net
Еще один кейс для распределенного лока)
источник
2021 February 04

GM

Gennady Movila in pro.net
Denis Petukhov
Еще один кейс для распределенного лока)
кстати по итогу скорее всего приду к хенгфаеру ибо пока не могу понять как через распределённый лок сделать так, чтобы если джоба была запущена по расписанию,сделать так, что после того как лок её отпустил(выполнилась) другие инстансы не начали её тоже выполнять
источник

DP

Denis Petukhov in pro.net
Gennady Movila
кстати по итогу скорее всего приду к хенгфаеру ибо пока не могу понять как через распределённый лок сделать так, чтобы если джоба была запущена по расписанию,сделать так, что после того как лок её отпустил(выполнилась) другие инстансы не начали её тоже выполнять
Ну пишешь в джобе иф получил лок то выполняем, элз ретурн
источник

GM

Gennady Movila in pro.net
хмм..
источник

SY

Sergey Yaremchenko in pro.net
Gennady Movila
кстати по итогу скорее всего приду к хенгфаеру ибо пока не могу понять как через распределённый лок сделать так, чтобы если джоба была запущена по расписанию,сделать так, что после того как лок её отпустил(выполнилась) другие инстансы не начали её тоже выполнять
Надо наверное как-то отдельно хранить список жоб, а по расписанию гернерировать новые жобы, каждая с отдельным статусом завершения, но тогда и правда наверное можно свой хенгфайр написать. Но если там фич много не надо, может оно и лучше так будет.
источник

GM

Gennady Movila in pro.net
Да, это хэнгфаер и делает
источник

GM

Gennady Movila in pro.net
Хранит пул задач
источник

DP

Denis Petukhov in pro.net
Но хэнгфаер не будет делать ограничений на инстансы
источник

DP

Denis Petukhov in pro.net
Если даже объявишь ReccuringJob то можно её запускать в куче экземпляров одновременно
источник

DP

Denis Petukhov in pro.net
А так он балансирует задачи по инстансам, да
источник

DP

Denis Petukhov in pro.net
Но если задачку запустишь два раза (например клиент заретраит) то будет одновременно на разных инстансах выполняться
источник

DP

Denis Petukhov in pro.net
Тут уже можно и распредлок заюзать если нельзя одновременно
источник