예제 #1
0
 async Task PostQueryStatsToMaster(FetchoAPIV1Client client)
 {
     foreach (var qry in Queries.OrderByDescending(x => x.Value.AvgCost))
     {
         await client.PostWorkspaceQueryStatsAsync(new WorkspaceQueryStats(qry.Key, qry.Value));
     }
 }
예제 #2
0
        public void Setup()
        {
            var cfg = new FetchoConfiguration();

            FetchoConfiguration.Current = cfg;
            cfg.SetConfigurationSetting(
                () => cfg.FetchoWorkspaceServerBaseUri,
                ConfigurationManager.AppSettings["FetchoWorkspaceServerBaseUri"]
                );
            client = new FetchoAPIV1Client(new Uri(FetchoConfiguration.Current.FetchoWorkspaceServerBaseUri));
        }
예제 #3
0
        static async Task GetOrCreateServerNode(FetchoConfiguration cfg)
        {
            if (cfg.FetchoWorkspaceServerBaseUri.Length == 0)
            {
                return;
            }

            var fetchoClient = new FetchoAPIV1Client(new Uri(cfg.FetchoWorkspaceServerBaseUri));

            cfg.CurrentServerNode = await fetchoClient.GetServerNodeAsync(Environment.MachineName);

            if (cfg.CurrentServerNode == null)
            {
                cfg.CurrentServerNode = await fetchoClient.CreateServerNodeAsync(new ServerNode());
            }
        }
예제 #4
0
        async Task SetupQueries(FetchoAPIV1Client fetchoClient)
        {
            var workspaces = await fetchoClient.GetWorkspacesAsync();

            foreach (var workspace in workspaces.Distinct())
            {
                var id = workspace.WorkspaceId.GetValueOrDefault();
                if (!workspace.IsActive || string.IsNullOrWhiteSpace(workspace.QueryText))
                {
                    if (Queries.ContainsKey(id))
                    {
                        Queries.Remove(id);
                    }
                }
                else if (!Queries.ContainsKey(id))
                {
                    Queries.Add(id, new Query(workspace.QueryText));
                }
                else if (Queries[id].OriginalQueryText != workspace.QueryText)
                {
                    Queries[id] = new Query(workspace.QueryText);
                }
            }
        }
예제 #5
0
 public QueryConsumer(params string[] args)
 {
     fetchoClient = new FetchoAPIV1Client(new Uri(FetchoConfiguration.Current.FetchoWorkspaceServerBaseUri));
     Queries      = new Dictionary <Guid, Query>();
     ClearAll();
 }