예제 #1
0
파일: Program.cs 프로젝트: Aspect26/socneto
        public static async Task MainAsync(string[] args)
        {
            var assemblyPath   = (new Uri(Assembly.GetExecutingAssembly().CodeBase)).AbsolutePath;
            var directory      = new FileInfo(assemblyPath).Directory.FullName;
            var twitterMetaDir = Path.Combine(directory, "metatw");
            var jobMetaDir     = Path.Combine(directory, "metajob");

            Directory.CreateDirectory(twitterMetaDir);
            Directory.CreateDirectory(jobMetaDir);

            var builder = new DataAcquisitionServiceWebApiBuilder(args)
                          .AddSingletonService <IDataAcquirer, TwitterDataAcquirer>()
                          .AddSingletonService <IDataAcquirerMetadataContextProvider, TwitterMetadataContextProvider>()
                          .AddSingletonService <TwitterBatchLoaderFactory>()
                          .AddSingletonService <ITwitterContextProvider, TwitterContextProvider>()
                          .AddSingletonService <IDataAcquirerMetadataContext, TwitterMetadataContext>()
                          .ConfigureSpecificOptions <MetadataStorageProxyOptions>("DataAcquisitionService:MetadataStorageProxyOptions")
                          .ConfigureSpecificOptions <FileJsonStorageOptions>("DataAcquisitionService:FileJsonStorageOptions")
                          .PostConfigure <FileJsonStorageOptions>(o => o.Directory = twitterMetaDir)
                          .ConfigureSpecificOptions <DataAcquirerJobFileStorageOptions>("DataAcquisitionService:DataAcquirerJobFileStorageOptions")
                          .ConfigureSpecificOptions <TwitterBatchLoaderOptions>("DataAcquisitionService:TwitterBatchLoaderOptions")
                          .PostConfigure <DataAcquirerJobFileStorageOptions>(o => o.Directory = jobMetaDir);


            var app = builder.BuildWebHost(false);

            await InitializeApplication(app);

            await app.RunAsync();
        }
예제 #2
0
        public static async Task MainAsync(string[] args)
        {
            if (args.Contains("--sleep_on_startup"))
            {
                Console.WriteLine("Sleeping 180 seconds");
                await Task.Delay(TimeSpan.FromSeconds(180));
            }

            var app = new DataAcquisitionServiceWebApiBuilder(args)
                      .AddSingletonService <IDataAcquirer, CustomStaticDataAcquirer>()
                      .AddSingletonService <CustomStreamReaderFactory>()
                      .ConfigureSpecificOptions <AttributeElementNames>("DataAcquisitionService:AttributeElementNames")
                      .ConfigureSpecificOptions <MinioOptions>("DataAcquisitionService:MinioOptions")
                      .BuildWebHost(false);

            await InitializeApplication(app);

            app.Run();
        }
예제 #3
0
        public static async Task MainAsync(string[] args)
        {
            if (args.Contains("--sleep_on_startup"))
            {
                await Task.Delay(TimeSpan.FromSeconds(60));
            }

            //var assemblyPath = (new Uri(Assembly.GetExecutingAssembly().CodeBase)).AbsolutePath;

            var builder = new DataAcquisitionServiceWebApiBuilder(args)
                          .AddSingletonService <IDataAcquirer, RedditDataAcquirer>()
                          //.AddSingletonService<IDataAcquirerMetadataContextProvider, TwitterMetadataContextProvider>()
                          //.AddSingletonService<IDataAcquirerMetadataStorage, TwitterJsonFileMetadataStorage>()
                          .AddSingletonService <RedditContextProvider>()
                          //    .ConfigureSpecificOptions<DataAcquirerJobFileStorageOptions>("DataAcquisitionService:DataAcquirerJobFileStorageOptions")
                          //.PostConfigure<DataAcquirerJobFileStorageOptions>(o => o.Directory = jobMetaDir);
            ;

            var app = builder.BuildWebHost(false);

            await InitializeApplication(app);

            await app.RunAsync();
        }