Commit 2346bc20 authored by Savorboard's avatar Savorboard Committed by GitHub

Update README.md

parent 5c2f2e3b
...@@ -97,29 +97,22 @@ Inject `ICapPublisher` in your Controller, then use the `ICapPublisher` to send ...@@ -97,29 +97,22 @@ Inject `ICapPublisher` in your Controller, then use the `ICapPublisher` to send
```cs ```cs
public class PublishController : Controller public class PublishController : Controller
{ {
private readonly ICapPublisher _publisher; private readonly AppDbContext _dbContext;
public PublishController(ICapPublisher publisher) public PublishController(AppDbContext dbContext)
{ {
_publisher = publisher; _dbContext = dbContext;
}
[Route("~/checkAccount")]
public async Task<IActionResult> PublishMessage()
{
// Specifies the message header and content to be sent
await _publisher.PublishAsync("xxx.services.account.check", new Person { Name = "Foo", Age = 11 });
return Ok();
} }
[Route("~/checkAccountWithTrans")] [Route("~/checkAccountWithTrans")]
public async Task<IActionResult> PublishMessageWithTransaction([FromServices]AppDbContext dbContext) public async Task<IActionResult> PublishMessageWithTransaction([FromServices]ICapPublisher publisher)
{ {
using (var trans = dbContext.Database.BeginTransaction()) using (var trans = dbContext.Database.BeginTransaction())
{ {
await _publisher.PublishAsync("xxx.services.account.check", new Person { Name = "Foo", Age = 11 }); // your business code
//Achieving atomicity between original database operation and the publish event log thanks to a local transaction
await publisher.PublishAsync("xxx.services.account.check", new Person { Name = "Foo", Age = 11 });
trans.Commit(); trans.Commit();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment