Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实现RabbitMQ-pub-sub_C#_Rabbitmq_Messaging_Publish Subscribe_Amqp - Fatal编程技术网

C# 实现RabbitMQ-pub-sub

C# 实现RabbitMQ-pub-sub,c#,rabbitmq,messaging,publish-subscribe,amqp,C#,Rabbitmq,Messaging,Publish Subscribe,Amqp,我试图将基于RabbitMQ的pub-sub合并到一个特定的编程场景中 我有一个Web API端点。当我收到来自这项服务的201回复时,我想发送电子邮件 我已经有了另一个API端点,我可以调用它来发送电子邮件 我在哪里设置邮件程序 我如何设置RabbitMQ来处理这个场景? 为了进一步澄清,这是否应该是fanout交换设置?邮件通常是如何处理临时或持久队列的 听起来像是一个典型的工作者场景,其中一方将作业/消息排入消息队列(生产者),另一方将获取消息并对其进行处理(消费者/工作者)。在您的情况下

我试图将基于RabbitMQ的pub-sub合并到一个特定的编程场景中

我有一个Web API端点。当我收到来自这项服务的
201
回复时,我想发送电子邮件

我已经有了另一个API端点,我可以调用它来发送电子邮件

我在哪里设置邮件程序

我如何设置RabbitMQ来处理这个场景?
为了进一步澄清,这是否应该是
fanout
交换设置?邮件通常是如何处理临时或持久队列的

听起来像是一个典型的工作者场景,其中一方将作业/消息排入消息队列(生产者),另一方将获取消息并对其进行处理(消费者/工作者)。在您的情况下,工作人员将收到消息并发送电子邮件(或点击发送电子邮件的api端点)。工人通常在不同的机器上运行,因此他们可以在不影响应用程序或api的情况下工作

如果您使用的是RabbitMQ,您应该阅读“工作队列”教程,了解如何为您的场景设置它:


也有一些托管解决方案专门用于此,它们不需要任何设置,如消息队列。如果您不想处理工作服务器,甚至更进一步,您可以使用

“我应该在哪里设置邮件发送程序?”---作为一个单独的工作人员。“我如何设置RabbitMQ来处理这种情况?”——这还不清楚。你读过rabitmq文档吗?@zerkms用更具体的说明更新了Q。只是为了进一步说明,你有一个进程正在命中某个端点,如果该端点返回201,那么你想命中另一个端点以便它发送电子邮件?@TravisR是的,这是正确的。