Beispiel #1
0
        static void MainAsync(string[] args)
        {
            var serviceCollection = new ServiceCollection();

            ConfigureServices(serviceCollection);
            var serviceProvider = serviceCollection.BuildServiceProvider();

            FlightDataProcessor = serviceProvider.GetService <IEventProcessor>();

            InitializeFileSystemWatcher();

            //Initialzie for first round
            BufferBlock = FlightDataProcessor.GetBufferBlock();

            //Pass the buffer block to Pipeline mesh
            DataTransformerBlock = FlightDataProcessor.Process(BufferBlock);


            Timer timer = new Timer(new TimerCallback(Timer_CallBack), null, 2000, 5000);


            Console.WriteLine(" =========================Consumer has started===============================");
            Console.WriteLine($"========Raw folder path is '{PathUtility.RawFolder}'");
            Console.WriteLine($"========Exception folder path is '{PathUtility.ExceptionFolder}'");
            Console.WriteLine($"========Curated folder path is '{PathUtility.CuratedFolder}'");
            Console.WriteLine($"========Log folder path is '{PathUtility.LogFolder}'");
            Console.WriteLine($"==========Program is observing the input folder {PathUtility.InputFolder}");
            while (true)
            {
                //Thread cancellation token is missing
            }
        }
Beispiel #2
0
        private static void Timer_CallBack(object state)
        {
            var files = Queue;

            Queue = new BlockingCollection <string>();
            BufferBlock.Post(new List <string>(files));
            BufferBlock.Complete();
            DataTransformerBlock.Wait();
            BufferBlock          = FlightDataProcessor.GetBufferBlock();
            DataTransformerBlock = FlightDataProcessor.Process(BufferBlock);
        }