Size: a a a

2021 March 09

MM

Maksim Masiukevich in symfony
есть плагин
источник

MM

Maksim Masiukevich in symfony
который тоже костыль, но скрытый от глаз
источник

MM

Maksim Masiukevich in symfony
rabbitmq delayed message plugin
источник

JK

Jeka Kovtun in symfony
Давно было, но плагин я этот юзал. Всё норм пока кролик один. Как только нужен кластер кролику становится плохо с этим плагином.
источник

JK

Jeka Kovtun in symfony
Может что и поправили.
источник

MM

Maksim Masiukevich in symfony
ну самый надёжный способ - костыль для dead letter'а. у плагина есть множество минусов
источник

MM

Maksim Masiukevich in symfony
ну либо не выпендриваться и воткнуть крон/аналог. Всё ж плагин для другого, равно как и варианты с dead letter'ом
источник

AK

Alexey Kuzmin in symfony
так dead letter тебе все равно нужно обработать, т.е у тебя должен быть консьюмер, который умеет понимать эти "отложенные" сообщения
источник

JK

Jeka Kovtun in symfony
Alexey Kuzmin
так dead letter тебе все равно нужно обработать, т.е у тебя должен быть консьюмер, который умеет понимать эти "отложенные" сообщения
Не совсем понимаю.

Если AmqpMessage не имеет TTL, то и dead letter exchange не нужен. Висит себе набитая очередь и висит. Пусть висит пока консьюмер не поднимется.

* Это в отрыве от delayed.
источник

AK

Alexey Kuzmin in symfony
Jeka Kovtun
Не совсем понимаю.

Если AmqpMessage не имеет TTL, то и dead letter exchange не нужен. Висит себе набитая очередь и висит. Пусть висит пока консьюмер не поднимется.

* Это в отрыве от delayed.
так а кто его поднимет? и почему он не поднят?
источник

JK

Jeka Kovtun in symfony
Если у тебя падают консьюмеры обычные, то проблему нужно решать не dead letter-ом ))
источник

AK

Alexey Kuzmin in symfony
так к этому я и веду)
источник

JK

Jeka Kovtun in symfony
Кароч, я к тому, что если у мессенджера транспорт AMQP, то я б не использовал DelayedStamp события вообще.
источник

JK

Jeka Kovtun in symfony
Ну либо отдельную очередь для них с транспотротом в SQL
источник

ST

Sergey Tsarikov in symfony
Здравствуйте. А в каком случае может не создаться  поле в  базе данных (в миграции). Использую Embeddable для выделения Address, миграция не создает поле city
/ @Embeddable */
final class Address
{

   /
@Embeddable */
final class Address
{

   /
    * @ORM\ManyToOne(targetEntity="City",inversedBy="companies")
    * @JoinColumn(name="city", referencedColumnName="id")
    * @Assert\NotNull
    */
   private $city;
источник

DS

Dimitriy Serikov in symfony
Sergey Tsarikov
Здравствуйте. А в каком случае может не создаться  поле в  базе данных (в миграции). Использую Embeddable для выделения Address, миграция не создает поле city
/ @Embeddable */
final class Address
{

   /
@Embeddable */
final class Address
{

   /
    * @ORM\ManyToOne(targetEntity="City",inversedBy="companies")
    * @JoinColumn(name="city", referencedColumnName="id")
    * @Assert\NotNull
    */
   private $city;
@JoinColumn@JoinColumn ===> @ORM\JoinColumn
источник

ST

Sergey Tsarikov in symfony
Dimitriy Serikov
@JoinColumn@JoinColumn ===> @ORM\JoinColumn
Спасибо. Но не создает всё равно. Создает другие поля прописанные в Address, но city не создает
источник

DT

Denis Trubachev in symfony
Sergey Tsarikov
Здравствуйте. А в каком случае может не создаться  поле в  базе данных (в миграции). Использую Embeddable для выделения Address, миграция не создает поле city
/ @Embeddable */
final class Address
{

   /
@Embeddable */
final class Address
{

   /
    * @ORM\ManyToOne(targetEntity="City",inversedBy="companies")
    * @JoinColumn(name="city", referencedColumnName="id")
    * @Assert\NotNull
    */
   private $city;
Что в родителе прописано?
источник

ST

Sergey Tsarikov in symfony
/** @Embedded(class = "Address") */
   private $address;
источник

ST

Sergey Tsarikov in symfony
Видимо "Embeddables can only contain properties with basic @Column mapping."
источник