我们有TFS2010和单个解决方案,有近200个项目(是的,我知道,不好主意,不是我的!).我在4核(8超)机器上的构建时间从大约30秒开始,从4分钟顺序完成,通过解耦代码来实现高水平的构建并发性.我现在想在构建服务器上获得它的好处,这必须是可能的,因为MSBuild支持并行构建.怎么样?
有没有办法在MonoDevelop中自定义代码窗口颜色方案?如果可能的话,我想要像黑曜石之子这样的东西.
这是一个简单的 UDP 服务器:
-module(kvstore_udpserver).
-author("mylesmcdonnell").
%% API
-export([start/0]).
start() ->
spawn(fun() -> server(2346) end).
server(Port) ->
{ok, Socket} = gen_udp:open(Port, [binary]),
loop(Socket).
loop(Socket) ->
receive
{udp, Socket, Host, Port, Bin} ->
case binary_to_term(Bin) of
{store, Value} ->
io:format("kvstore_udpserver:{store, Value}~n"),
gen_udp:send(Socket,Host,Port,term_to_binary(kvstore:store(Value)));
{retrieve, Key} ->
io:format("kvstore_udpserver:{retrieve, Value}~n"),
gen_udp:send(Socket,Host,Port,term_to_binary(kvstore:retrieve(Key)))
end,
loop(Socket)
end.
Run Code Online (Sandbox Code Playgroud)
我怎样才能重组这个,以便
a)它,或者至少是它的相关部分,是一个 gen_server,这样我就可以添加到监督树中
b) 通过在单独的进程中处理每条消息来增加并发性。
我已经为我的 TCP 服务器重新实现了 Learn You Some Erlang 中的 sockserv 示例,但我正在努力确定 UDP 的类似模型。
我正在运行TeamCity 9x,它似乎不支持VCS密码参数,这意味着我必须使用SSH密钥(证明很难,但这是一个单独的问题)或输入每个构建配置的密码,这是不可接受的,因为我们将最终有超过100个构建配置,所以更改密码将是非常艰巨的.
有没有办法可以指定一次密码并将其注入每个VCS根目录?
我使用 aws-vault 在 ZSH 中建立到我的开发 AWS 环境的安全会话,一切都很好。现在我想运行我的 IDE (Gogland),让它假设 aws-vault 会话,这样我就可以反过来调试一些依赖于 S3 的测试。
我如何才能让进程(例如 Gogland)继承 aws-vault 会话?在建立保险库会话后,我尝试从 shell 简单地启动 Gogland,但无济于事。
我希望这个问题有很多可能的解决方案,我可以自己提出一些解决方案,其中一些明显优于其他解决方案,但我确定没有一个解决方案是最优的,所以我很想听听那些真正的多线程专家.
我有大约100件可以同时执行的工作,因为它们之间没有依赖关系.如果我按顺序执行这些操作,我的总执行时间大约是1:30.如果我在线程池中对每个工作进行排队,则需要大约2米,这告诉我,我正在尝试一次做太多,并且所有这些线程之间的上下文切换否定了拥有这些线程的优势.
所以基于这个假设(如果这是错误的话,请随时把我击倒)如果我只排队到系统中的核心数(这台机器上有8个),那么任何时候我都会减少上下文切换从而提高整体效率(其他流程线程当然不能承受),有人能建议这样做的最佳模式/技术吗?
顺便说一下,我使用的是smartthreadpool.codeplex.com,但我没有.
我使用Autofac作为我的IoC容器.我有:
IRepository<>,我的存储库界面;DbContextRepository<>,使用EntityFramework的DbContext的存储库的通用实现; PersonRepository : DbContextRepository<Person>,程序集中的一些封闭类型的存储库 ;RepositoryDecorator<>,用一些标准的额外行为来装饰我的存储库;我正在使用autofac将它们全部注册为:
builder.RegisterGeneric(typeof(DbContextRepository<>))
.Named("repo", typeof(IRepository<>));
builder.RegisterGenericDecorator(
typeof(RepositoryDecorator<>),
typeof(IRepository<>),
fromKey: "repo");
var repositorios = Assembly.GetAssembly(typeof(PersonRepository));
builder.RegisterAssemblyTypes(repositorios).Where(t => t.Name.EndsWith("Repository"))
.AsClosedTypesOf(typeof(IRepository<>))
.Named("repo2", typeof(IRepository<>))
.PropertiesAutowired();
builder.RegisterGenericDecorator(
typeof(RepositoryDecorator<>),
typeof(IRepository<>),
fromKey: "repo2");
Run Code Online (Sandbox Code Playgroud)
我想要做的是:
DbContextRepository<>为通用实施IRepository<>; 当我尝试解析一个IRepository<Product>没有闭合类型实现的时,它会正确返回一个装饰的DbContextRepository.
但是,当我尝试解决的IRepository<Person>,它有一个封闭式的实现,这也给了我一个装饰DbContextRepository,而不是装饰PersonRepository.
其中一个应用程序deps的.beam文件之一正在被删除,我不确定是什么/如何.
有没有办法监视或审核文件,看看删除后会发生什么?
我正在使用RedHat发行版.
我正在运行以下命令,但无法弄清楚为什么在调用 New-Service 时访问被拒绝:
param(
[string]$serviceName,
[string]$exePath,
[string]$username,
[string]$password
)
"Attempting to install service '$serviceName' - '$exePath'"
$secpassword = convertto-securestring -String $password -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($username, $secpassword)
$existingService = Get-WmiObject -Class Win32_Service -Filter "Name='$serviceName'"
if ($existingService)
{
"'$serviceName' exists already. Stopping."
Stop-Service $serviceName
"Waiting 3 seconds to allow existing service to stop."
Start-Sleep -s 3
$existingService.Delete()
"Waiting 5 seconds to allow service to be un-installed."
Start-Sleep -s 5
}
"Installing the service."
New-Service -BinaryPathName $exePath -Name $serviceName -Credential $cred …Run Code Online (Sandbox Code Playgroud) 我有两个解决方案的项目.一个是版本3.0.0.*,另一个是2.0.0.*.我使用MSBuild脚本在Team City上构建我的解决方案.如何将版本字符串的内部版本号部分注入AssemblyVersion属性,并保留在开发时定义的major.minor.patch.
换句话说我想手动控制major.minor.patch(并且解决方案中的各个主要部分的主要部分会有所不同)但是会自动增加内部版本号.
.net ×2
c# ×2
msbuild ×2
teamcity ×2
.net-3.5 ×1
autofac ×1
compilation ×1
erlang ×1
filesystems ×1
goland ×1
linux ×1
monodevelop ×1
powershell ×1
teamcity-9.0 ×1
tfs2010 ×1
udp ×1
versioning ×1