在本地编译(针对.NET Framework 4.6.1)的项目在TeamCity上失败,并显示以下消息:
[CoreCompile] Csc [Csc]使用目录中编译器的共享编译:C:\ Program Files(x86)\ MSBuild\14.0\bin
[19:02:15] [Csc] Services\MyFile.cs(20,55):错误CS1525:无效的表达式术语'int'
[19:02:15] [Csc] Services\MyFile.cs(20,59):错误CS1003:语法错误,','预计
在红色写作的失败编译中我也得到了很多这些:
[步骤5/9]在"C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(845,131)"的BeforeTargets属性中列出的目标"MvcBuildViews"在项目中不存在,将被忽略.
我在订阅一系列可观察的问题。就我而言,我有一个ID数组,我需要从状态中获取所有ID,并将所有结果组合成一个可观察的对象,并订阅该可观察的对象。我需要我的订阅者最终将获得一系列已解析的可观测值。
另外,我还需要保持此订阅的开放状态,因此,如果我的内在可观察的更改之一将通知我的订阅者。
这是我的代码:
getTransactionsByIDs(transactionsIDs){
return Observable.of(transactionIDs
.map(transactionID => this.getTransactionByID(transactionID)));
}
this.transactionsService.getTransactionsByIDs(transactionsIDs)
.subscribe(transactions=>{
....
})
Run Code Online (Sandbox Code Playgroud)
订户函数中上述代码的结果是未解析存储的数组。
如何解决每个商店并将它们融合在一起?
我还尝试过在transactionID上使用Observable.from()将每个ID转换为一个可观察的对象,然后对其进行解析。它工作正常,但随后我的订户分别收到每个ID的通知。如果有一种方法可以批量处理所有Observable.from()结果(并保持订阅打开),请告诉我。
这是我的Observable.from()的样子:
getTransactionsByIDs(transactionsIDs){
return transactionIDs
.mergeMap(transactionID => this.getTransactionByID(transactionID));
}
this.transactionsService.getTransactionsByIDs(Observable.from(transactionsIDs))
.subscribe(transactions=>{
....
})
Run Code Online (Sandbox Code Playgroud)
谢谢。
我正在使用 Elasticsearch.NET 在 .NET 环境中使用 Elasticsearch 进行一些自定义错误处理/日志记录。给定一个IResponse对象,我试图找到最佳策略来提取简短、简洁且有用的“根本原因”消息。我最初是这样做的,当我们遇到索引错误时,它非常有效:
shortMsg = response.ServerError?.Error?.RootCause?.FirstOrDefault()?.Reason;
Run Code Online (Sandbox Code Playgroud)
但我最近遇到了一个查询时错误,上面给了我这个:
"failed to create query: { ... }"
Run Code Online (Sandbox Code Playgroud)
(省略了详细信息,但它有效地转储了整个查询。)
由于这不是特别有用,因此我花了一点时间浏览response以查看还有什么可用的。response.ServerError.Error.Reason,例如,返回"all shards failed"- 也不是特别有用。response.DebugInformation比我想要的这个特定目的要大得多,但我确实在大海捞针中找到了我正在寻找的目标:
"Can't parse boolean value [True], expected [true] or [false]"
Run Code Online (Sandbox Code Playgroud)
这是完美的,为了避免解析它,DebugInfomation我还设法在这里找到它:
"failed to create query: { ... }"
Run Code Online (Sandbox Code Playgroud)
所以现在我已经制定了这个策略来获得我的shortMsg:
"Can't parse boolean value [True], expected [true] or [false]"
Run Code Online (Sandbox Code Playgroud)
我对此的担忧是,假设如果第一个路径上存在某些东西,它总是比第二个路径“更好”,这可能是天真的。更好地理解响应结构本身可能是制定最佳策略的关键。
有什么改进的建议吗?
我在 Quartz 中设置了一些作业以设定的时间间隔运行。问题是,当服务启动时,它会尝试立即启动所有作业……有没有办法使用 .xml 配置为每个作业添加延迟?
以下是 2 个作业触发器示例:
<simple>
<name>ProductSaleInTrigger</name>
<group>Jobs</group>
<description>Triggers the ProductSaleIn job</description>
<misfire-instruction>SmartPolicy</misfire-instruction>
<volatile>false</volatile>
<job-name>ProductSaleIn</job-name>
<job-group>Jobs</job-group>
<repeat-count>RepeatIndefinitely</repeat-count>
<repeat-interval>86400000</repeat-interval>
</simple>
<simple>
<name>CustomersOutTrigger</name>
<group>Jobs</group>
<description>Triggers the CustomersOut job</description>
<misfire-instruction>SmartPolicy</misfire-instruction>
<volatile>false</volatile>
<job-name>CustomersOut</job-name>
<job-group>Jobs</job-group>
<repeat-count>RepeatIndefinitely</repeat-count>
<repeat-interval>43200000</repeat-interval>
</simple>
Run Code Online (Sandbox Code Playgroud)
如您所见,有 2 个触发器,第一个每天重复,下一个每天重复两次。
我的问题是我希望第一个或第二个工作在另一个之后开始几分钟......(因为它们最终都访问相同的 API,我不想使请求过载)
是否有重复延迟或优先级属性?我找不到任何文件这样说..
我有一个 4 节点的 elasticsearch 集群。我有一个 .net 控制台应用程序,旨在用来自 sql 的数据填充集群。只要我将添加(或删除)记录的速度保持在相当低的水平,一切都可以正常工作。如果我最终增加线程数,我会在控制台应用程序中看到超时错误。该集群共有 48 个内核,索引一条记录所需的平均时间约为 0.1 秒。
我已经能够让它每秒处理大约 7000 条记录(文档)。我从来没有看到从 elasticsearch.net 抛出的任何表明资源不足的异常。我从未看到任何索引队列超载。服务器的 CPU 峰值永远不会超过 10%。看起来问题不是集群或其配置,而是嵌套连接中的问题。这是我的连接代码:
//set up the es client
Uri node = new Uri(ConfigurationManager.AppSettings["ESConnectionString"]);
var connectionPool = new SniffingConnectionPool(new[] { node });
ConnectionSettings settings = new ConnectionSettings(connectionPool);
settings.SetDefaultPropertyNameInferrer(p => p); //ditch the camelcase
settings.SniffOnConnectionFault(true);
settings.SniffOnStartup(true);
settings.SniffLifeSpan(TimeSpan.FromMinutes(1));
settings.SetPingTimeout(3000);
settings.SetTimeout(5000);
settings.MaximumRetries(5);
//settings.SetMaximumAsyncConnections(20);
settings.SetDefaultIndex("dummyindex");
settings.SetBasicAuthentication(ConfigurationManager.AppSettings["ESUser"], ConfigurationManager.AppSettings["ESPass"]);
ElasticClient client = new ElasticClient(settings);
Run Code Online (Sandbox Code Playgroud)
我使用 http.basic 身份验证设置了集群,但我尝试打开和关闭它,但没有任何区别。以下是来自 ES 节点的一些相关设置:
discovery.zen.minimum_master_nodes: 2
discovery.zen.fd.ping_timeout: 30s
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["CACHE01","CACHE02","CACHE03","CACHE04"]
cluster.routing.allocation.node_concurrent_recoveries: 5 …Run Code Online (Sandbox Code Playgroud) 我很难让模块在Angular 2中工作.我已经创建了一个演示问题的插件.在插件中,你会看到我有app.module.该模块导入app-common.module,其中包含一个显示页眉的组件.顶级组件的模板app.component包含此组件的选择器.这是app.common.module:
@NgModule({
imports:[CommonModule, FormsModule],
declarations: [PageHeaderComponent]
})
export class AppCommonModule { }
Run Code Online (Sandbox Code Playgroud)
这是app.module:
@NgModule({
imports: [AppCommonModule, BrowserModule],
declarations: [AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
运行应用程序时,它会抛出一个错误,"ref-pageheader"不是已知元素.如果我在app.module中声明组件,它可以正常工作.那么,为什么我不能在导入到主app.module的模块中声明这个组件?看来Angular在完成后无法找到它.我究竟做错了什么?我错过了什么吗?
在我的Angular应用程序中,我有一个父模块与其他子模块一起填充.我的子模块有这个模板:
<input type="radio" class="form-control"
[checked] = "message.default == 1"
[value] = "message.default"
(change)="onSelectionChange(message)"
name="default" >
Run Code Online (Sandbox Code Playgroud)
这是ts:
export class MessageComponent implements OnInit {
message: MessageInterface;
@Output() onCheckedChange = new EventEmitter<MessageInterface>();
constructor() { }
ngOnInit() {
}
onSelectionChange(message: MessageInterface) {
this.onCheckedChange.emit(message);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的父模板
<div #placeholder ></div>
Run Code Online (Sandbox Code Playgroud)
和ts
export class ParentComponent implements OnInit {
@ViewChild('placeholder', {read: ViewContainerRef}) placeHolder;
ngOnInit() {
for(let i=0; i<this.aVariable; i++) {
let factory = this.componentFactoryResolver.resolveComponentFactory(ChildComponent);
this.placeHolder.createComponent(factory);
}
}
onCheckedChange(message: MessageInterface) {
console.log("parent intercept");
}
Run Code Online (Sandbox Code Playgroud)
其中"aVariable"变量是从我调用的服务返回的值.
当我点击radiobutton时,没有显示日志消息,似乎父节点没有收到EventEmitter发射.怎么了?
MatDatePicker,其过滤器定义如下:
<mat-form-field class="example-full-width">
<input matInput [matDatepickerFilter]="myFilter" [matDatepicker]="picker" placeholder="Choose a date">
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)
export class DatepickerFilterExample {
someDateToBlock: number = 3;
myFilter = (d: Date): boolean => {
const day = d.getDay();
// THIS FUNCTION CANNOT ACCESS THE VARIABLE 'someDateToBlock'
return day !== 0 && day !== 6;
}
}
Run Code Online (Sandbox Code Playgroud)
我想在过滤器函数中访问变量someDateToBlock(或任何其他).是否有解决方法使这个可能吗?
我正在尝试映射一个可观察对象,从返回的可观察对象中获取一个值,然后将该值提供给另一个可观察对象,然后返回该结果。这是我到目前为止的内容:
getJobsByUser(user: User): Observable<Job[]> {
return this.getUsersGroupsAsObservable(user.uid, 'contacts').map(groups => {
groups.map(group => {
this.getJobsbyGroup(group.id);
});
});
getJobsbyGroup(groupId: string): Observable<Job[]> {
return this.afs
.collection<Job>('jobs', ref => ref.where(`group.${groupId}`, '==', true))
.valueChanges();
}
getUsersGroupsAsObservable(
userId: string,
type: string = 'users',
): Observable<Group[]> {
return this.afs
.collection<Group>('groups', ref =>
ref.where(`${type}.${userId}`, '==', true),
)
.valueChanges();
}
Run Code Online (Sandbox Code Playgroud)
问题是打字稿表明我的getJobsByUser函数将返回type:void的可观察对象。当我将其输出到模板上时,我什么也没有得到或未定义。我觉得我需要使用switchMap,但对rx / js有点模糊。我不确定如何返回Job []类型的Observable
更新:在@Pranay Rana的帮助下,我现在正在返回数组,并且可以得到如下第一个值:
getJobsByUser(user: User): Observable<Job[]> {
return this.getUsersGroupsAsObservable(user.uid, 'contacts').pipe(
mergeMap(groups => {
// returns an array of groups - we need to map this
return …Run Code Online (Sandbox Code Playgroud) ES 并不是我工作的主流,而且有一种行为我无法纠正。我有一个相当简单的聚合查询:
GET /my_index/_search
{
"size": 0,
"query": {
"bool": {
"must": [
{
"match": {
"request_type": "some_type"
}
},
{
"match": {
"carrier_name.keyword": "some_carrier"
}
}
]
}
},
"aggs": {
"by_date": {
"terms": {
"field": "date",
"order": {
"_term": "asc"
}
},
"aggs": {
"carrier_total": {
"sum": {
"field": "total_count"
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我对https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html的理解是,并非所有文档都包含在聚合中。事实上,根据查询部分,我确实在结果中看到“sum_other_doc_count”:值大于零。
我的问题:有没有办法构建搜索以包含所有文档?文档数量相当少,通常在1k以下,
预先感谢,鲁文
angular ×3
nest ×2
rxjs ×2
datefilter ×1
eventemitter ×1
msbuild ×1
ngrx ×1
observable ×1
quartz.net ×1
teamcity ×1
timeout ×1