小编Fre*_*ing的帖子

TeamCity C#编译错误:无效的表达式术语'int'

在本地编译(针对.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"在项目中不存在,将被忽略.

msbuild teamcity visual-studio-2017

6
推荐指数
1
解决办法
4928
查看次数

Rxjs解析可观察和合并结果的数组

我在订阅一系列可观察的问题。就我而言,我有一个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)

谢谢。

observable rxjs ngrx redux-observable angular2-observables

6
推荐指数
2
解决办法
1万
查看次数

如何获取 Elasticsearch.NET / NEST 中错误的“真正”根本原因?

我正在使用 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)

我对此的担忧是,假设如果第一个路径上存在某些东西,它总是第二个路径“更好”,这可能是天真的。更好地理解响应结构本身可能是制定最佳策略的关键。

有什么改进的建议吗?

elasticsearch nest elasticsearch.net

6
推荐指数
0
解决办法
806
查看次数

Quartz.Net - 延迟一个简单的触发器启动

我在 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,我不想使请求过载)

是否有重复延迟或优先级属性?我找不到任何文件这样说..

quartz-scheduler quartz.net

5
推荐指数
1
解决办法
8297
查看次数

Elasticsearch.Net 和超时

我有一个 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)

timeout elasticsearch nest elasticsearch-net

5
推荐指数
0
解决办法
3587
查看次数

Angular 2找不到我的功能模块中声明的组件

我很难让模块在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在完成后无法找到它.我究竟做错了什么?我错过了什么吗?

angular2-components angular

5
推荐指数
1
解决办法
6779
查看次数

angular2:如何在运行时创建的组件上使用EventEmitter?

在我的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发射.怎么了?

eventemitter angular

5
推荐指数
1
解决办法
1292
查看次数

MatDatepickerFilter - 过滤函数无法访问类变量

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)

我想在过滤器函数中访问变量some​​DateToBlock(或任何其他).是否有解决方法使这个可能吗?

datefilter angular-material2

5
推荐指数
2
解决办法
3809
查看次数

通过映射另一个Observable返回一个Observable

我正在尝试映射一个可观察对象,从返回的可观察对象中获取一个值,然后将该值提供给另一个可观察对象,然后返回该结果。这是我到目前为止的内容:

  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)

rxjs angular

5
推荐指数
2
解决办法
5159
查看次数

如何将所有文档包含在 ElasticSearch 聚合中并避免 sum_other_doc_count &gt; 0

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以下,

预先感谢,鲁文

elasticsearch elasticsearch-aggregation

5
推荐指数
1
解决办法
7274
查看次数