小编uzu*_*zul的帖子

适当的CloudTableClient实例生命周期?

我正在使用新的WindowsAzure.Storage 2.0(可能不是一个令人信服的信息),我正在使用CloudTableClient实现数据访问.我见过的大多数样本都是在ASP MVC控制器的存储器中实现CloudTableClient(根据Web请求实例化).这样做有任何性能损失吗?将长时间运行的实例保持为单例样式是否明智?

c# azure azure-storage

14
推荐指数
1
解决办法
2071
查看次数

使用TaskCompletionSource的TaskCreationOptions的目的是什么?

对于我的内心运作方式,我有些不清楚TaskCompletionSource<>.

Task<>使用the 创建一个简单的时候Factory,我希望这个任务在一个线程池中排队,除非我指定TaskCreationOptions.LongRunning,它将在一个新的线程中运行.

我的理解TaskCompletionSource是,我负责在任务结束或失败时触发,并且我完全控制如何管理线程.然而,ctor TaskCompletionSource允许我指定一个TaskCreationOptions,这让我感到困惑,因为我期望Scheduler无法处理任务本身.

TaskCreationOptions在一个上下文中的目的是TaskCompletionSource<>什么?

这是一个使用示例:

public Task<WebResponse> Download(string url)
{
    TaskCompletionSource<WebResponse> tcs = 
    new TaskCompletionSource<WebResponse>(TaskCreationOptions.LongRunning);

    var client = (HttpWebRequest)HttpWebRequest.Create(url);
    var async = client.BeginGetResponse(o =>
      {
          try
          {
              WebResponse resp = client.EndGetResponse(o);
              tcs.SetResult(resp);
          }
          catch (Exception ex)
          {
              tcs.SetException(ex);
          }
      }, null);


    return tcs.Task;
}
Run Code Online (Sandbox Code Playgroud)

c# task-parallel-library taskcompletionsource

12
推荐指数
1
解决办法
961
查看次数

不支持使用TableBatchOperation检索多行?

这是一段初始化TableBatchOperation的代码,用于在一个批处理中检索两行:

 TableBatchOperation batch = new TableBatchOperation();
 batch.Add(TableOperation.Retrieve("somePartition", "rowKey1"));
 batch.Add(TableOperation.Retrieve("somePartition", "rowKey2")); 
 //second call throws an ArgumentException:
 //"A batch transaction with a retrieve operation cannot contain 
 //any other operation"
Run Code Online (Sandbox Code Playgroud)

如上所述,抛出异常,并且似乎不支持在单个批处理中检索N行.这对我来说很重要,因为我需要为每个请求检索大约50行.这个问题与成本明智一样具有性能.您可能知道,Azure表存储定价基于事务量,这意味着50个检索操作比单个批处理操作贵50倍.

我错过了什么吗?

旁注 我正在使用新的Azure Storage api 2.0.我注意到这个问题从未在网上提出过.最近可能添加了这个约束吗?

编辑

我在这里找到了一个相关的问题:PartitionKey/RowKey列表上的Azure表存储查询非常慢.似乎在rowkeys上使用带有"或"的TableQuery会产生全表扫描.这里真的有一个严重的问题......

azure nosql azure-storage azure-table-storage

11
推荐指数
2
解决办法
7311
查看次数

如果TableBatchOperation的一个操作失败会发生什么?

执行批处理时,如果TableBatchOperation的其中一个操作失败:

  1. 批次中的每个操作都将被取消
  2. 处理有效的所有其他操作
  3. 处理队列中的第一个有效操作,直到一个操作失败,并且不处理后续操作

azure azure-table-storage

9
推荐指数
2
解决办法
2564
查看次数

建模数据库模型是设计复杂和大型企业应用程序的好方法吗?

我们正在开发一个面向服务的大型多层应用程序,必须从头开始设计.现在我们需要开始编程,并尝试组装第一块砖.

问题是从哪里开始?有人建议我们应该从设计持久数据模型开始,这将提供更清晰的视图.这是一个好方法吗?

编辑为Suirtimed

这里没有太多的敏捷文化.这是一个SOA样式项目,使用WCF,SQL Server,实体框架(使用POCO生成器用于域对象),ASP MVC和Workflow Foundation.我们是一个由4名开发人员组成的团队; 技术合理(但不是专家).

architecture database-design design-patterns software-design

4
推荐指数
1
解决办法
151
查看次数