小编fro*_*tin的帖子

具有多个列表的 for 循环

我在 terraform 中有 2 个变量列表。需要使用两个列表并创建资源

我拥有的

locals {
    bucket_name = ["SRE", "Engg", "QA"]
    access_type = ["Private", "Public" ]
}
        
resource "oci_objectstorage_bucket" "test_bucket" {
    for_each = local.bucket_name 
    
    compartment_id = var.compartment_id
    name           = each.value
    namespace      = var.bucket_namespace
    access_type    = "Private" ## for Private 
}

resource "oci_objectstorage_bucket" "test_bucket" {
    for_each = local.bucket_name 

    compartment_id = var.compartment_id
    name           = each.value
    namespace      = var.bucket_namespace
    access_type    = "Public" ## For Public 
}
Run Code Online (Sandbox Code Playgroud)

通过上述资源块,我可以创建所需的存储桶。但是,我不想对同一组代码使用 2 个块(一个用于私有,另一个用于公共)。是否有可能合并 2 个列表并创建资源

terraform terraform0.12+

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

Apache Flink中shuffle()和rebalance()之间的区别

我正在研究我的学士学位的最终项目,这是关于Apache Spark Streaming和Apache Flink(仅限流媒体)之间的比较,我刚刚在Flink的文档中找到了"物理分区".问题是,在本文档中,它并没有很好地解释这两个转换是如何工作的.直接来自文档:

shuffle():根据均匀分布随机分区元素.

rebalance():分区元素循环,每个分区创建相等的负载.在存在数据偏斜时用于性能优化.

资料来源:https://ci.apache.org/projects/flink/flink-docs-release-1.2/dev/datastream_api.html#physical-partitioning

两者都是自动完成的,所以我理解的是它们都是shuffle()均匀地重新分配(>均匀分布和rebalance()>循环)以及随机数据.然后我推断出rebalance()以更好的方式分配数据("每个分区的负载相等"),因此任务必须处理相同数量的数据,但shuffle()可能会创建越来越大的分区.于是,在这种情况下,可能你更喜欢使用shuffle()rebalance()

我想到的唯一事情是可能rebalance()需要一些处理时间,因此在某些情况下,它可能会花费更多时间来进行重新平衡,而不是在未来转换中改进的时间.

我一直在寻找这个,没有人谈过这个,只在Flink的邮件列表中,但他们没有解释如何shuffle()工作.

感谢Sneftel,他帮助我改进了我的问题,问我要让我重新思考一下我想问的问题; 和Till谁回答我的问题.:d

apache partitioning bigdata apache-flink flink-streaming

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

如何从 cypress 中的单个元素查询多个内容

我正在尝试测试 cypress 中弹出窗口/模式的内容。我的第一直觉是重复命令来获取模态元素,如下所示:

it('filter modal/popup', () => {
    cy.get('.some-button').click();
    cy.get('.some-modal').contains('abc').should('be.visible');
    cy.get('.some-modal').contains('def').should('be.visible');
    cy.getByCyTag('.some-modal').contains('xyz').should('be.visible');
});
Run Code Online (Sandbox Code Playgroud)

然而,“作为一名程序员”,查询“folder-tree-filter-modal”三次甚至更多次让我有点不舒服。由于您无法将 cypress 对象存储在变量中,因为它们会产生结果,因此我尝试使用 cypress 的 then() 基于 Promise 的语法,但这看起来也并没有好多少:

it('filter modal/popup', () => {
    cy.get('.some-button').click();
    cy.get('.some-modal').then((modal) => {
        cy.wrap(modal).should('be.visible');
        cy.wrap(modal).contains('abc').should('be.visible');
        cy.wrap(modal).contains('def').should('be.visible');
        cy.wrap(modal).contains('xyz').should('be.visible');
    });
});
Run Code Online (Sandbox Code Playgroud)

是我想太多还是有更好的方法?

cypress

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