【问题标题】:A delayed Consume延迟消费
【发布时间】:2017-04-28 12:17:04
【问题描述】:

是否可以延迟消耗队列中的项目?

有一个重试功能,我可以设置间隔,但我需要延迟第一次使用该项目。

编辑

我在这里看到的:https://github.com/MassTransit/MassTransit-Quartz 是我真正需要的。

类似:

bus.SchedulePublish(30.Seconds().FromNow, new MyMessage(someId, someValue));

这将在 30 秒后发布消息。

但是我如何构建这个解决方案以便检索MassTransit.Quartz.dll?我不断收到错误SolutionVersion.cs could not be found.

【问题讨论】:

    标签: c# rabbitmq masstransit


    【解决方案1】:

    有一个 NuGet 包,MassTransit.Quartz,其中包括程序集。

    https://www.nuget.org/packages/masstransit.quartz

    我建议使用它而不是自己构建它。

    此外,如果您是消费者,您可以使用消费者上下文中的扩展方法轻松地将消息发回给自己。检查文档以获取更新,但ScheduleSend 是方法。

    SchedulePublish() 可以,但如果您知道消息的目的地,则首选ScheduleSend() 到特定端点。

    【讨论】:

    • 我们要构建很多 Consumer 方法,我实际上不想在每个 Consumer 中实现相同的方法。但是 SchedulePublish() 看起来不错,要试一试。顺便说一句,我必须使用 MassTransit.QuartzIntegration.dll 吗?我找不到 MassTransit.Quartz.dll。
    • 我在回复中直接链接了 NuGet 包,是的,我认为实际的 DLL 是 QuartzIntegration。
    • 我将 MassTransit.QuartzIntegration.dll 作为参考添加到我的项目中,但 SchedulePublish 未被识别。你能帮我解决这个问题吗?
    • SchedulePublish 在 RabbitMQ 程序集中。
    • 抱歉,这对我帮助不大。你的意思是哪个程序集......我从nuget链接下载了整个包。我必须参考哪个 dll 才能使用 SchedulePublish?我找不到任何完整的例子……这让我很失望。
    猜你喜欢
    • 2020-04-02
    • 2012-01-28
    • 1970-01-01
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    • 1970-01-01
    相关资源
    最近更新 更多