示例#1
0
        public static async Task Producer(string brokerList, string connStr, string topic, string cacertlocation)
        {
            try
            {
                var config = new ProducerConfig
                {
                    BootstrapServers = brokerList,
                    SecurityProtocol = SecurityProtocol.SaslSsl,
                    SaslMechanism    = SaslMechanism.Plain,
                    SaslUsername     = "******",
                    SaslPassword     = connStr,
                    SslCaLocation    = "",
                    //Debug = "security,broker,protocol"        //Uncomment for librdkafka debugging information
                };
                using (var producer = new ProducerBuilder <long, string>(config).SetKeySerializer(Serializers.Int64).SetValueSerializer(Serializers.Utf8).Build())
                {
                    Console.WriteLine("Sending 10 messages to topic: " + topic + ", broker(s): " + brokerList);

                    //Data Creation
                    CatalogAvailability availability = new CatalogAvailability
                    {
                        UW = "Yes"
                    };

                    List <string> CategoryList = new List <string>
                    {
                        "Cat1", "Cat2", "Cat3", "Cat4"
                    };

                    CatalogContractPrices contractPrices = new CatalogContractPrices
                    {
                        ContractA         = "Yes",
                        ContractC         = "C",
                        ContractCategoryA = "CatA"
                    };

                    CatalogVisibility visibility = new CatalogVisibility
                    {
                        ContractA = "A level Visibility",
                        ContractC = "C Visible",
                        Default   = "true"
                    };

                    CatalogFields fields = new CatalogFields {
                        Availability   = availability, Brand = "New", CategoryEn = CategoryList, CategoryFr = CategoryList,
                        ContractPrices = contractPrices, NetPrice = "20.2", ProductID = "99115", SaleRank = "First",
                        TitleEn        = "Good Product", TitleFr = "French Product", Visibility = visibility
                    };

                    CatalogModel catalogModel = new CatalogModel
                    {
                        Fields = fields
                    };

                    var CatalogJsonString = JsonConvert.SerializeObject(catalogModel);

                    for (int x = 0; x < 10; x++)
                    {
                        var msg            = string.Format("Sample Catalog #{0} sent at {1}", CatalogJsonString, DateTime.Now.ToString("yyyy-MM-dd_HH:mm:ss.ffff"));
                        var deliveryReport = await producer.ProduceAsync(topic, new Message <long, string> {
                            Key = DateTime.UtcNow.Ticks, Value = msg
                        });

                        Console.WriteLine(string.Format("Message {0} sent (value: '{1}')", x, msg));
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(string.Format("Exception Occurred - {0}", e.Message));
            }
        }
示例#2
0
 //Methods for Properties
 public void ChooseCatalogAvailability()
 {
     CatalogAvailability.Click();
 }