Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

58 строки
1.5 KiB

  1. using System;
  2. using System.Threading.Tasks;
  3. using DotNetCore.CAP;
  4. using DotNetCore.CAP.RabbitMQ;
  5. using Microsoft.AspNetCore.Hosting;
  6. using Microsoft.AspNetCore.Mvc;
  7. using Dapper;
  8. namespace Sample.Kafka.Controllers
  9. {
  10. [Route("api/[controller]")]
  11. public class ValuesController : Controller, ICapSubscribe
  12. {
  13. private readonly ICapPublisher _producer;
  14. private readonly AppDbContext _dbContext ;
  15. public ValuesController(ICapPublisher producer, AppDbContext dbContext)
  16. {
  17. _producer = producer;
  18. _dbContext = dbContext;
  19. }
  20. [Route("/")]
  21. public IActionResult Index()
  22. {
  23. return Ok();
  24. }
  25. public string ServerPath => ((IHostingEnvironment)HttpContext.RequestServices.GetService(typeof(IHostingEnvironment))).ContentRootPath;
  26. [CapSubscribe("zzwl.topic.finace.callBack", Group = "test")]
  27. public void KafkaTest(Person person)
  28. {
  29. Console.WriteLine(person.Name);
  30. Console.WriteLine(person.Age);
  31. }
  32. [Route("~/send")]
  33. public async Task<IActionResult> SendTopic()
  34. {
  35. using (var trans = _dbContext.Database.BeginTransaction())
  36. {
  37. await _producer.PublishAsync("zzwl.topic.finace.callBack","");
  38. trans.Commit();
  39. }
  40. return Ok();
  41. }
  42. public class Person
  43. {
  44. public string Name { get; set; }
  45. public int Age { get; set; }
  46. }
  47. }
  48. }