小编phi*_*hil的帖子

为什么我在跳过的队列中收到消息

我在 fork/join 配置中有一个 saga 设置。

在传奇中定义的事件

  • FileMetadataMsg
  • FileReadyMsg
  • SomeOtherMsg

当文件进入单独的侦听器时,进程开始。

  • 出版 SagaStart(correlationId)
  • 出版 FileSavedToMsg(correlationId, fileLoc)
  • 出版 FileMetadataMsg(correlationId, metadata)
  • 出版 FileReadyMsg(correlationId, fileLoc)

的下游端点对文件做了一些工作

Consumer<FileSavedToMsg>

  • 出版 SomeOtherMsg(GotTheFileMsg.correlationId, data)

我在 saga_skipped 队列中收到一个 FileSavedToMsg。我只能假设这是由于 FileSavedToMsg 上有一个correlationId,因为传奇本身没有在其状态机中使用 FileSavedToMsg 并且没有Event<FileSavedToMsg>.

如果这是为什么...我应该在 CorrelationId 以外的字段中传递correlationId,所以传奇看不到它?我在某个地方需要它,所以我可以用它标记 SomeOtherMsg。

这是 saga 端点的定义方式

return Bus.Factory.CreateUsingRabbitMq(cfg =>
{
    var host = cfg.Host(new Uri("rabbitmq://localhost/"), h =>
            {
                h.Username("guest");
                h.Password("guest");
            });              

            cfg.ReceiveEndpoint(host, "study_saga", epCfg =>
            {
                epCfg.StateMachineSaga(machine, repository);
            });
});
Run Code Online (Sandbox Code Playgroud)

以下是定义工作端点的方式

return Bus.Factory.CreateUsingRabbitMq(x =>
{
    var host = x.Host(new Uri("rabbitmq://localhost/"), h =>
        { …
Run Code Online (Sandbox Code Playgroud)

masstransit

8
推荐指数
1
解决办法
1万
查看次数

如何使用Dapper.SqlBuilder和OrWhere构建动态sql查询

我正在尝试为多个搜索项构建动态Sql查询.我一般都了解如何使用构建器,但我不知道在循环中该做什么,因为我实际上每次都需要@term不同(我认为).不仅在查询中,而且在匿名类型中也匹配.

我可以在查询字符串中使用string.Format,但不确定如何在匿名类型中匹配它?

public async Task<List<Thing>> Search(params string[] searchTerms)
{
    var builder = new SqlBuilder();
    var template = builder.AddTemplate("SELECT * /**select**/ from ThingTags /**where**/ ");

    for (int i = 0; i < searchTerms.Length; i++)
    {
        builder.OrWhere("value LIKE @term", new { term = "%" + searchTerms[i] + "%" });
    }
...
}
Run Code Online (Sandbox Code Playgroud)

在当前形式中,为术语"abc""def""ghi"创建的查询是

CommandType: Text, CommandText: SELECT *  from ThingTags WHERE  ( value LIKE @term OR value LIKE @term OR value LIKE @term ) 

Parameters:
Name: term, Value: %ghi%
Run Code Online (Sandbox Code Playgroud)

sqlbuilder dapper

4
推荐指数
1
解决办法
8287
查看次数

标签 统计

dapper ×1

masstransit ×1

sqlbuilder ×1