小编bad*_*key的帖子

无法确定是否需要启动作业:错过启动时间太多 (> 100)。设置或减少 .spec.startingDeadlineSeconds 或检查时钟偏差

我已经创建了一个 cron 作业并将其推送到部署,但是当我看到它在 OpenShift 中运行时,我收到以下错误消息:

无法确定是否需要启动作业:错过启动时间太多 (> 100)。设置或减少 .spec.startingDeadlineSeconds 或检查时钟偏差。

根据我的理解,作业无法运行。但我不明白为什么它失败了。为什么没有记录在某处?- 或者如果是,我在哪里可以找到它?

CronJob 控制器将继续尝试根据最近的计划开始作业,但一直失败,显然它已经这样做了 100 次以上。

我检查了我的 cron 作业的语法,它没有给出任何错误。此外,如果有任何语法消息,我什至不允许推送。

有谁知道怎么了?

我的 Cron 工作:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: my-cjob
  labels:
    job-name: my-cjob
spec:
  schedule: "*/5 * * * *" 
  jobTemplate:
    # activeDeadlineSeconds: 180 # 3 min <<- should this help and why?
      spec:
        template:         
          metadata:
            name: my-cjob
            labels:
              job-name: my-cjob
          spec:
            containers:
            - name: my-cjob
              image: my-image-name
            restartPolicy: OnFailure
Run Code Online (Sandbox Code Playgroud)

还是我应该使用startingDeadlineSeconds?任何遇到此错误消息并找到解决方案的人?

根据评论更新

运行时,kubectl get cronjob我得到以下信息:

NAME …
Run Code Online (Sandbox Code Playgroud)

cron openshift kubernetes devops

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

TFS:“无法从程序集中加载类型‘’” - 但有时只显示

在我的解决方案中,我运行了单元测试,它们都通过了。然后,当我通过 TFS 提交时,有时会在有关项目之一的 TFS 构建步骤中显示以下内容:

Could not load type 'Castle.Proxies.HttpContextProxy' from assembly
'DynamicProxyGenAssembly2, Version=0.0.0.0, Culture=neutral,
PublicKeyToken=xxx'
Run Code Online (Sandbox Code Playgroud)

为什么错误仅有时显示?

我已经按照“无法从程序集错误加载类型”中的建议检查了 VS 中属性的“应用程序”选项卡下的所有程序集名称 - 还尝试清除我的 bin 文件夹,但没有任何反应 - tfs 中仍然偶尔显示错误-项目单元测试之一的构建步骤(在 VS17 中也从未显示)。

c# tfs types unit-testing assemblies

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

在单个单元测试中多次模拟 httpclient

嗨,我正在尝试模拟 httpclient,显然是强迫它给我我需要的结果。问题是,在我的单元测试中,我必须模拟 httpClient 两次,每次都有不同的响应。

...
...
            var httpReq = new HttpRequestMessage(
            HttpMethod.Get,
            $"{config["MY_TEST_ENDPOINT"]/site1}");

            var myContent = await response.Content.ReadAsStringAsync();
            var myFirstModel = JsonConvert.DeserializeObject<MyFirstModel>(myContent );
...
...
Run Code Online (Sandbox Code Playgroud)

我嘲笑这可能:

...
myMockedHttp
            .Protected()
            .Setup<Task<HttpResponseMessage>>(
                "SendAsync",
                ItExpr.IsAny<HttpRequestMessage>(),
                ItExpr.IsAny<CancellationToken>())
            .ReturnsAsync(new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.OK,
                Content = new StringContent("[{'id':'0001'," +
                                            "'name':'Jonah'," +
                                            "'street':'Cambridge Street 1234'}]"
                                            )
            })
            .Verifiable();
Run Code Online (Sandbox Code Playgroud)

这会给我一个响应,我可以反序列化和使用它 - 给它一个包含 3 个成员的对象:id、name 和 street。

这对我来说是一个问题 - 我也在同一个单元测试中进行了另一个 httpclient 调用,但我不知道如何模拟它。事情是这样的:

...
...
            var httpReq = new HttpRequestMessage(
            HttpMethod.Get,
            $"{config["MY_TEST_ENDPOINT"]/site2}");

            var httpResponseMsg = …
Run Code Online (Sandbox Code Playgroud)

c# serialization unit-testing moq dotnet-httpclient

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

将 IConfiguration 注入 .NET Core 3.0 中的 Program.cs(控制台应用程序)

我正在尝试将 IConfiguration(Microsoft.Extensions.Configuration 包)注入 Program.cs 中,但不知道这是否可行,因此如果可能的话,显然不知道该怎么做。

我已经在其他项目的 Startup 类中完成了它,但在那里我只是做了一个简单的依赖注入,我没有发现在控制台应用程序中以相同的方式完成。

原因是,我需要访问 appsettings 中的一些关键值,以使用 SqlConnection 类 (System.Data.SqlClient) 访问我的数据库。

通常,我只是在 Startup.cs 中像这样添加它:

....
services.AddScoped(mysql => new SqlConnection($"and here goes my variables from appsettings..");
....
Run Code Online (Sandbox Code Playgroud)

我需要使用选项模式还是有更简单的方法?

c# configuration dependency-injection sqlconnection appsettings

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

如何在 Grafana 中重置“警报”状态

我设置了一个 Grafana 警报,当我在图表中的值达到特定值时发出警报。

该值在一个月前达到,从那时起,该状态一直处于“警报”状态。

我显然想将此状态重置为“OK”,因为该事件发生在一个月前并已得到解决。

知道怎么做吗?

我已经截取了一些图表/面板和警报设置的屏幕截图,所以你可以看到我设置的内容。

图表截图

警报

警报自定义的屏幕截图

主要目标是每次值超过 468 时收到警报。

logging alert dashboard elasticsearch grafana

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

http_request_duration_seconds_sum / http_request_duration_seconds_count 显示 2 个图表

我有一个 Grafana 仪表板,我尝试在其中绘制一些普罗米修斯指标。

我正在尝试使用以下公式计算 2 个端点的平均响应时间:

http_request_duration_seconds_sum / http_request_duration_seconds_count
Run Code Online (Sandbox Code Playgroud)

但是当将查询绘制到 Grafana 图形面板中时,我得到 4 个图形(每个图形 2 个),而不是只有 2 个,我不明白。

Grafana 的片段

谁能告诉我,为什么有 4 条曲线而不是 2 条?顶部的两个来自同一个查询,底部的两个也来自同一个查询。

更新

正在添加

sum(rate(http_request_duration_sum))[24h] / sum(rate(http_request_duration_count))[24h] 
Run Code Online (Sandbox Code Playgroud)

答案?这给了我 2 条曲线而不是 4 条,但不确定结果是否是我想要的(即端点的平均响应时间)。

jquery dashboard grafana prometheus

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

如何检查字符串是否不等于多个字符串

我希望用户插入一个字符串作为参数,然后检查该字符串是否等于多个字符串之一。

我现在的做法是

....
if(stringParam != "text1" || stringParam != "text2" || stringParam != "text3"...  stringParam != "text10")
....
Run Code Online (Sandbox Code Playgroud)

有没有办法可以写得更可读/更漂亮?可能有,但我想不出办法。

另外,字符串是大写还是小写并不重要。

c# string compare

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