Объявление очереди, публикация сообщений GenerateInvoice в очередь и наличие нескольких потребителей для очереди будет работать в этом сценарии.
Сообщения, опубликованные в очереди, не будут потеряны, и они останутся в RMQ, если нет потребителей. Единственное, что нужно сделать - это объявить очередь перед публикацией сообщений.
Пример Java:
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
Затем, публикация может быть выполнена как:
channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
, а потребление может быть сделано как:
channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> { });
Это как DataGridView
работы; с автоматически генерируют включенные столбцы, дополнительные (неотображенные) столбцы добавляются в конец. Можно развязать и снова переплести для фиксации его; установите DataSource в NULL и назад к таблице:
this.dataGridView1.DataSource = null;
this.dataGridView1.Columns.Clear();
this.dataGridView1.DataSource = data;