是否可以为每个新的唯一关联ID提供spring聚合器的实例?为每个唯一的相关ID创建MessageStore,但我想知道是否也可以为聚合器提供1:1实例:MessageStore。
我想根据从传入消息中提取的内容在聚合器类中拥有实例值,这有助于我确定每个MessageStore的发布策略。
更新:术语已更正。
答案 0 :(得分:0)
没有单独的数据存储区"对于每个correlationId。
聚合器使用默认情况下在内存中的MessageGroupStore
,但可以是多个持久性MessageGroupStores
之一。
每个correlationId都会获得一个新的MessageGroup
,该MessageGroupStore
存储在Map
中。
您不能为每个组创建POJO聚合器类的新实例;如果你有状态你需要管理,你需要使用关联策略键入的List<Message<?>>
来保持该状态而不是简单的字段。
保证只有一个线程可以同时为特定组调用您的POJO。
您可能需要更改发布策略以获取public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->unsignedInteger('user_id')->nullable()->change();
});
}
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->unsignedInteger('user_id')->nullable(false)->change();
});
}
,以便您可以确定组ID(通常是correlationId,但可以是您的关联策略创建的任何内容)。