public BackgroundCassandraWorker(ILogger logger, CancellationTokenSource cancellationTokenSource, CassandraConfiguration config, IBackgroundTaskQueue <JObject> queue)
 {
     _queue  = queue;
     _config = config;
     _logger = logger;
     Token   = cancellationTokenSource.Token;
 }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            IConfiguration config = new ConfigurationBuilder()
                                    .AddJsonFile("appsettings.json", true, true)
                                    .Build();

            // NLog: setup the logger first to catch all errors
            NLog.LogManager.Configuration = new NLog.Config.XmlLoggingConfiguration("nlog.config");
            NLog.ILogger           logger            = NLog.LogManager.Configuration.LogFactory.GetLogger("");
            CassandraConfiguration cassandra_config  = config.GetSection("cassandra").Get <CassandraConfiguration>();
            MqttAddress            data_mqtt_address = config.GetSection("MQTTBrokers:DataBrokerAddress").Get <MqttAddress>();

            cancellationTokenSource = new CancellationTokenSource();
            IBackgroundTaskQueue <JObject> dataQueue = new BackgroundTaskQueue <JObject>();

            mqtt_worker                         = new CollectWorker(dataQueue);
            Console.CancelKeyPress             += Console_CancelKeyPress;
            cassandraWorker                     = new BackgroundCassandraWorker(logger, cancellationTokenSource, cassandra_config, dataQueue);
            cassandraWorker.RunWorkerCompleted += CassandraWorker_RunWorkerCompleted;

            Task t = mqtt_worker.ConnectionAsync(data_mqtt_address.ClientId, data_mqtt_address.BindAddress, data_mqtt_address.Port, (ushort)data_mqtt_address.QosLevel, data_mqtt_address.Topic);

            t.Wait();
            Task worker_Task = cassandraWorker.RunWorkerAsync();

            worker_Task.Wait();
        }