小编a3y*_*3y3的帖子

Azure Devops Pipelines 中的循环和数组

您可以使用类似于-${{ each x in y }}:. 根据我的理解,y可以是一个数组。

但是,我发现没有each. 描述其用法示例的唯一页面位于“模板”页面上。

所以我的问题是:我如何去指定一个数组?我知道一种方法是使用-${{ each book in parameters.books }}:然后传入books类似的“列表” :

- template: template.yml
  parameters: 
    books:
      - book1
      - book2
      - book3
Run Code Online (Sandbox Code Playgroud)

但是,我还想将数组定义为变量:

variables:
  books:
    - book1
    - book2
    - book3
Run Code Online (Sandbox Code Playgroud)

但是,为此,ADO 会抛出错误 A sequence was not expected

有没有办法像这样定义一个数组?我想我会将这些称为-${{ each book in variables.books }}:如果没有,还有其他方法可以指定列表吗?

azure azure-devops azure-pipelines

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

为什么wsgi应用程序运行在“/”中?

我刚刚使用 mod_wsgi 在 Apache2 上部署了 Flask 应用程序。然而,为了成功做到这一点,我必须修改我的应用程序代码。更改是针对目录的。我发现通过运行os.getcwd()os.listdir(cwd),应用程序正在根目录 (/) 中运行。

因此,我无法使用任何相对路径名来访问文件。例如,早些时候我使用open("../secrets/app_secrets.json"). 由于我的应用程序现在在 / 中运行,因此我被迫使用绝对路径名来识别文件。它可以工作,但非常不方便,因为绝对文件路径与我的服务器、本地目录和使用我的工作的其他人不同。所以我想我的问题是:

  • 为什么这是一个好的设计?我无法想象为什么 mod_wsgi 从“/”运行 python 文件。事实上,它是如何做到这一点的超出了我的范围。
  • 有什么方法可以改变这种行为并使 python 文件从特定文件夹运行,以便我可以使用相对路径?

编辑:好的,我已经阅读了 Graham 在评论中提供的链接(https://modwsgi.readthedocs.io/en/develop/user-guides/application-issues.html#application-working-directory),但我可以'不要思考这个问题:为什么使用相对路径是一个坏主意?我的应用程序使用大量文件 IO,我讨厌将所有内容都放在绝对路径中:我有很多环境,并且修改单个环境中的代码将不容易在其他环境中复制。除了使用绝对路径之外,是否没有简单的方法可以做到这一点?

python apache mod-wsgi

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

如何保留未处理异常的日志范围?

假设有一个函数使用带有范围的记录器,以便:

public void HttpFunction(ILogger log)
{
  using log.BeginScope("somescope");
  FunctionA(); // this can throw an exception
}
Run Code Online (Sandbox Code Playgroud)

如果FunctionA引发异常,somescope则不会添加到记录器自动记录的异常中,因为控件将位于功能块之外,并且范围将被释放。

有没有办法自动让记录器记录异常以及添加的范围?我不喜欢仅仅为了将其注销而启用 try catch 块FunctionA(事实上,如果开发人员后来添加了FunctionB,他们可能会犯错误并忘记将其包装在 try-catch 中)。另外,我要添加的 catch 块将通过执行 log-error-and-return-500 来“处理”错误,无论如何都会自动发生。

另外,我正在使用 Serilog,但我认为这不相关。

c#

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

为什么在此问题中4遍解决方案的性能比1遍解决方案更快?

问题指出:从原点开始的给定方向(U p,D own,L eft,R ight),String moves最终结果将是原点吗?

一个明显的解决方案是简单地设置两个变量(用于跟踪垂直和水平运动),并查看在所有方向操作之后它们是否为零:

public boolean judgeCircle(String moves) {
    char[] chars = moves.toCharArray();
    int vertical = 0;
    int horizontal = 0;

    for(int i = 0; i < chars.length; i++){
        char c = chars[i];
        switch(c){
            case 'U':
                vertical ++;
                break;
            case 'D':
                vertical --;
                break;
            case 'L': 
                horizontal --;
                break;
            case 'R': 
                horizontal ++;
                break;
        }
    }
    return (vertical == 0) && (horizontal == 0);
}
Run Code Online (Sandbox Code Playgroud)

对于Leetcode的测试案例,该算法可在约8ms内找到正确的解决方案。

但是,扫描所有操作4次的解决方案仅在〜1ms内即可 …

java algorithm

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

如何释放从 vec 中删除的对象的内存?

如果我有一个vec结构体,调用vec.remove(index)将删除存储在vecat index中的结构体index。但是,文档没有明确提及这些删除的对象会发生什么。我如何确保他们被释放?

如果 Rust 中的对象在超出范围时被释放,那么这些被移除的对象会发生什么,因为向量可能会超出范围,但被移除的对象可能会悬空在内存中?的代码Vec::remove(index)似乎只是抵消了向量中的元素以覆盖被删除的元素:

// Shift everything down to fill in that spot.
ptr::copy(ptr.offset(1), ptr, len - index - 1);
Run Code Online (Sandbox Code Playgroud)

rust

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

标签 统计

algorithm ×1

apache ×1

azure ×1

azure-devops ×1

azure-pipelines ×1

c# ×1

java ×1

mod-wsgi ×1

python ×1

rust ×1