我正在处理一个非常大的数据集,大约有200万条记录.我有下面的代码,但是在它处理了三个批次,大约600,000条记录后得到了一个内存不足的例外.我理解,因为它循环遍历每个批处理实体框架的延迟加载,然后尝试将完整的200万条记录构建到内存中.有没有办法卸载我处理过的批次?
ModelContext dbContext = new ModelContext();
IEnumerable<IEnumerable<Town>> towns = dbContext.Towns.OrderBy(t => t.TownID).Batch(200000);
foreach (var batch in towns)
{
SearchClient.Instance.IndexMany(batch, SearchClient.Instance.Settings.DefaultIndex, "Town", new SimpleBulkParameters() { Refresh = false });
}
Run Code Online (Sandbox Code Playgroud)
注意:批处理方法来自此项目:https://code.google.com/p/morelinq/
搜索客户端是这样的:https://github.com/Mpdreamz/NEST
我想使用automapper在我的公共数据协定和我的数据库模型之间进行映射.我创建了一个自动完成所有契约的类创建映射.我唯一的问题是,如果值不为null,我只想将合约中的值映射到数据库模型.我在这里看了其他问题但是看不到使用自定义解析器的示例.
这是我的一些代码
var mapToTarget = AutoMapper.Mapper.CreateMap(contract, mappedTo);
foreach (var property in contract.GetProperties().Where(property => property.CustomAttributes.Any(a => a.AttributeType == typeof(MapsToProperty))))
{
var attribute = property.GetCustomAttributes(typeof(MapsToProperty), true).FirstOrDefault() as MapsToProperty;
if (attribute == null) continue;
mapToTarget.ForMember(attribute.MappedToName,
opt =>
opt.ResolveUsing<ContractToSourceResolver>()
.ConstructedBy(() => new ContractToSourceResolver(new MapsToProperty(property.Name, attribute.SourceToContractMethod, attribute.ContractToSourceMethod))));
}
private class ContractToSourceResolver : ValueResolver<IDataContract, object>
{
private MapsToProperty Property { get; set; }
public ContractToSourceResolver(MapsToProperty property)
{
Property = property;
}
protected override object ResolveCore(IDataContract contract)
{
object result = null;
if (Property.ContractToSourceMethod != null)
{ …Run Code Online (Sandbox Code Playgroud) 我正在使用OpenCV开发一个ANPR系统,并在一些文章中看到了一种进行字符分割的方法.我们的想法是制作一个图表,显示图像上的颜色浓度.
我该怎么做呢?

这是我的形象:

我需要检测如上所示的黑色区域的位置以识别每个字符.
我已经尝试逐个像素地添加值,但我在Android上这样做,这需要时间是不可接受的.
我试图在Azure中编写一堆资源的脚本,作为其中的一部分,我需要一个Web应用程序,以便能够通过vNet与VM上运行的服务进行通信.
我创建了一个模板,它似乎做了创建连接所需的一切,但由于某种原因没有建立连接.查看门户网站显示该站点已连接到vNet并且证书已同步,但vNet网关上的点对站配置未显示活动连接.
但是,如果我从vNet断开Web应用程序的连接,然后使用Azure门户中的设置按钮重新连接到同一个vNet,一切都可以正常工作.
我的模板中肯定会有一些东西丢失,但过去几个小时看起来我无法解决问题
这是我的ARM模板
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
},
"variables": {
},
"resources": [
{
"type": "Microsoft.Network/networkSecurityGroups",
"name": "[variables('nsgName')]",
"apiVersion": "2016-03-30",
"location": "[parameters('location')]",
"properties": {
"securityRules": []
},
"resources": [ ],
"dependsOn": [ ]
},
{
"type": "Microsoft.Network/networkSecurityGroups",
"name": "[variables('infrastructureNsgName')]",
"apiVersion": "2016-03-30",
"location": "[parameters('location')]",
"properties": {
"securityRules": []
},
"resources": [ ],
"dependsOn": [ ]
},
{
"type": "Microsoft.Network/virtualNetworks",
"name": "[variables('vnetName')]",
"apiVersion": "2016-03-30",
"location": "[parameters('location')]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"10.1.0.0/16"
]
},
"subnets": [ …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用kubeadm此处记录的Azure在Azure中创建HA Kubernetes集群https://kubernetes.io/docs/setup/independent/high-availability/
当只使用1个主节点时我可以正常工作但是当更改为3个主节点时,kube-dns会随着apiserver问题而崩溃
我可以看到运行时kubectl get nodes3个主节点已准备就绪
NAME STATUS ROLES AGE VERSION
k8s-master-0 Ready master 3h v1.9.3
k8s-master-1 Ready master 3h v1.9.3
k8s-master-2 Ready master 3h v1.9.3
Run Code Online (Sandbox Code Playgroud)
但是dns和仪表板吊舱一直在崩溃
NAME READY STATUS RESTARTS AGE
kube-apiserver-k8s-master-0 1/1 Running 0 3h
kube-apiserver-k8s-master-1 1/1 Running 0 2h
kube-apiserver-k8s-master-2 1/1 Running 0 3h
kube-controller-manager-k8s-master-0 1/1 Running 0 3h
kube-controller-manager-k8s-master-1 1/1 Running 0 3h
kube-controller-manager-k8s-master-2 1/1 Running 0 3h
kube-dns-6f4fd4bdf-rmqbf 1/3 CrashLoopBackOff 88 3h
kube-proxy-5phhf 1/1 Running 0 3h
kube-proxy-h5rk8 1/1 Running …Run Code Online (Sandbox Code Playgroud) 我正在创建一个新的Web API,并希望允许用户指定在URL中返回哪些字段.
我目前的想法是:
对于这样的示例模型:
public class Value
{
public string ValueId { get; set; }
public int Number { get; set; }
public ValueInternal Internal { get; set; }
}
public class ValueInternal
{
public int Number { get; set; }
public string Something { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和这样的URL
http://example.com/api/values/?_fields=Number,Internal(Something)
Run Code Online (Sandbox Code Playgroud)
会回来的
[
{
"Number": 0,
"Internal": {
"Number": 0
}
}
]
Run Code Online (Sandbox Code Playgroud)
我已经提出了以下实现这一目标的方法,但它有一些缺陷.即它是无法处理的,如果Internal是可枚举的ValueInternal或者不支持包括所有或包括所有除外,或者如果T和TResult是不同的类型.有没有人对我如何改进这一点有任何建议,或者是否已经存在一种我缺少的方法.
public static Expression<Func<T, TResult>> CreateSelector<T, TResult>() where TResult : new()
{
var …Run Code Online (Sandbox Code Playgroud) 我正在开发一个OpenCV项目并使用cvMatchTemplate来定位图像的一部分然后我使用cvMinMaxLoc来查找最大区域,因此最匹配,我的问题是cvMinMaxLoc只返回一个最大位置,因为可能有多个匹配一个图像.
有没有办法将所有最大位置返回到特定阈值以上
即
对于每个位置>阈值将位置添加到阵列
我是OpenCV的新手,不知道这样的事情是否已经存在,但到目前为止我还没有找到任何东西
任何帮助非常感谢
作为 Azure 资源组模板的一部分,我为我的 VM 设置了 PowerShell DSC 扩展,该扩展设置了各种 Windows 功能。
作为此自动化设置的一部分,我希望能够在防火墙中打开一些端口,经过一番研究后我发现有一个可用的 xFirewall DSC 模块。我的问题是如何在 DSC 执行之前自动将此模块安装到 Azure VM 上?
我的配置如下:
Configuration Main
{
Param ( [string] $nodeName )
Import-DscResource -ModuleName PSDesiredStateConfiguration
Import-DscResource -ModuleName xFirewall
Node $nodeName
Run Code Online (Sandbox Code Playgroud)
由于未安装模块,xFirewall 导入失败。
我曾考虑过创建另一个可以在此脚本之前运行的 DSC 脚本,但这证明很困难,因为一次只能将一个 DSC 扩展附加到虚拟机。
我正在使用Mircosoft Orleans作为基础的工作流引擎,因为它提供了许多有用的功能,例如自动分配工作和处理故障转移.
我有三种类型的谷物:
我的问题是,当运行大量当前执行时,即> 1000时,性能确实受到影响.我做了一些分析,并将其缩小到谷物之间发生的沟通.反正我还能改进这个吗?
这是我的代码的轮廓以及晶粒如何相互作用
执行粒度位于循环中,从工作流中获取下一个工作块,然后在工作块上调用execute.谷物之间的这种不断调用导致我的一个测试工作流程的执行时间从运行单次执行时的10秒变为运行超过1000时的大约5分钟.这可以改进还是应该重新设计解决方案去除粮食沟通?
[StorageProvider(ProviderName = "WorkflowStore")]
[Reentrant]
[StatelessWorker]
public class Workflow : Grain<WorkflowState>, IWorkflow
{
public Task<BlockRef> GetNext(Guid currentBlockId, string connectionName)
{
//Lookup the next work block
}
}
[Reentrant]
[StatelessWorker]
public class WorkBlock : Grain<WorkBlock State>, IWorkBlock
{
public Task<string> Execute(IExecution execution)
{
//Do some work
}
}
[StorageProvider(ProviderName = "ExecutionStore")]
public class Execution : Grain<ExecutionState>, IExecution, IRemindable
{
private async Task ExecuteNext(bool skipBreakpointCheck = false) …Run Code Online (Sandbox Code Playgroud) c# ×4
azure ×2
opencv ×2
anpr ×1
automapper ×1
coreos ×1
dsc ×1
kubeadm ×1
kubernetes ×1
ocr ×1
orleans ×1
performance ×1
powershell ×1