使用类名调用 Python 静态方法更为常见,但对于长类名来说可能会让人眼花缭乱。有时我self在同一个类中使用调用静态方法,因为我发现它看起来更干净。
class ASomewhatLongButDescriptiveClassName:
def __init__(self):
# This works, but it's an eyesore
ASomewhatLongButDescriptiveClassName.do_something_static()
# This works too and looks cleaner.
self.do_something_static()
@staticmethod
def do_something_static():
print('Static method called.')
Run Code Online (Sandbox Code Playgroud)
我的理解是,调用静态方法self会被解释为ClassName.static_method(self),其中self静态方法将被忽略。
(编辑:上述陈述仅适用于实例方法,不适用于静态方法)
self我不应该在同一个类中调用静态方法有什么具体原因吗?
FWIW这是一个姊妹问题:Difference Between Calling Method with self and with class name? ,它处理非静态方法。
在合并检查设置中,我启用了“管道必须成功”选项:
但是没有任何作业的分支会因为“等待管道状态”而陷入合并状态,并且如果没有成功的管道,则无法合并。
我可以仅对某些特定分支(例如 master/生产)启用“管道必须成功”选项吗?
我正在尝试创建一个包含生产和开发部署的管道。在这两种环境中,应用程序都应该使用 docker 构建。但仅当相应目录中发生更改时。
例如:
起初我没有关键字needs: 。即使未执行构建作业,管道也始终执行deploy_backend和deploy_frontend。
现在我已经添加了needs: 关键字,但是 Gitlab 说yaml invalid当一个目录中只有一个更改时。当两个目录都发生更改时,管道工作正常。例如,当 2 个目录之外的 README.md 发生更改时,也会yaml invalid这样说。
有谁知道如何创建一个管道,该管道仅在指定目录发生更改时运行,并且仅在构建作业运行时运行相应的部署作业?
gitlab-ci.yml:
stages:
- build
- deploy
build_frontend:
stage: build
only:
refs:
- master
- development
changes:
- frontend/*
script:
- cd frontend
- docker build -t frontend .
build_backend:
stage: build
only:
refs:
- master
- development
changes:
- backend/*
script:
- cd backend
- docker build -t backend .
deploy_frontend_dev:
stage: deploy
only:
refs: …Run Code Online (Sandbox Code Playgroud) 我有两个模块,它们的组件相互使用。所以我必须在“test”中导入“word”,在“word”中导入“test”-->抛出一个错误......我该怎么办?
模块“测试”:
@NgModule({
declarations: [
AppTest1Component,
AppTest2Component,
],
imports: [
AppWordModule,
],
exports: [
AppTest1Component,
AppTest2Component,
],
})
export class AppTestModule {
}
Run Code Online (Sandbox Code Playgroud)
模块“字”:
@NgModule({
declarations: [
AppWordComponent,
],
imports: [
AppTestModule,
],
exports: [
AppWordComponent,
],
})
export class AppWordModule {
}
Run Code Online (Sandbox Code Playgroud)
我因为模板相互导入。test1.component.ts的模板调用word.component.ts,word.component.ts的模板调用test1.component.ts。
测试1.html
<div class="app-word"></div>
Run Code Online (Sandbox Code Playgroud)
字.html
<div class="app-test1"></div>
Run Code Online (Sandbox Code Playgroud)
我尝试使用 SharedModule 但我没有实现...
OpenApi 文档说它支持微米。整合如何运作?除了这个小文档之外我找不到任何东西。
我在 Spring Boot 应用程序中有一个 FeignClient
@FeignClient(name = "SomeService", url = "xxx", configuration = FeignConfiguration.class)
public interface SomeService {
@GET
@Path("/something")
Something getSomething();
}
Run Code Online (Sandbox Code Playgroud)
与配置
public class FeignConfiguration {
@Bean
public Capability capability() {
return new MicrometerCapability();
}
}
Run Code Online (Sandbox Code Playgroud)
和微米积分作为依赖项
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-micrometer</artifactId>
<version>10.12</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
该代码进行了调用,但我无法通过actuator概述找到任何新指标,需要一些有关我的 HTTP 请求的一般信息。缺少什么部分?
我最近使用下面的示例 docker-compose.yml 文件在 Windows 10 的各个项目中成功安装了卷。对于今天的一个新项目,我需要从 Z:/ 驱动器(一个网络安装驱动器,当\\IP.IP.IP.IP\public\data (Z:)我导航到 Windows 文件资源管理器中的该区域时出现)安装一个文件夹。
当我编辑卷以指向 Z: 上的位置时(例如在下面的第二个 docker-compose.yml 中),当我通过 CLI 连接到容器时,卷未正确安装并且是空文件夹。
任何关于正确安装 Z: 驱动器文件夹的建议都会很棒,谢谢。
工作 docker-compose.yml 文件:
version: '3.1'
services:
db:
image: mysql:8.0.25
container_name: db
restart: always
secrets:
- mysql_root
environment:
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/mysql_root
MYSQL_DATABASE: donuts
TZ: "Australia/NSW"
volumes:
- mysql-data:/var/lib/mysql
- ./mysql-init.sql:/docker-entrypoint-initdb.d/mysql-init.sql
network_mode: "host"
voyager_donuts:
container_name: voyager_donuts
build:
context: .
dockerfile: Dockerfile
image: voyager_donuts
network_mode: "host"
environment:
TZ: "Australia/NSW"
volumes:
- c:/Users/MYUSERNAME/data/DonutsCalibration:/voyager_calibration
- c:/Users/MYUSERNAME/data/DonutsLog:/voyager_log
- c:/Users/MYUSERNAME/data:/voyager_data
- c:/Users/MYUSERNAME/data/DonutsReference:/voyager_reference
volumes:
mysql-data:
secrets: …Run Code Online (Sandbox Code Playgroud) 我有一个在 Dropwizard (0.9) 中开发的应用程序,我们内部基础设施的一部分会定期 ping 管理员健康检查 REST 端点以验证服务是否已启动。这增加了很多:
127.0.0.1 - - [26/Sep/2016:21:47:04 +0000] "GET /healthcheck HTTP/1.1" 200 - "-" "curl/7.43.0" 27
Run Code Online (Sandbox Code Playgroud)
到日志文件。调整我们的内部工具超出了范围,所以我想配置记录器以使这些条目静音。不幸的是,我无法识别生成这些消息的类。哪个类负责内置的 /healthcheck 端点,并将一个简单的:
logging:
loggers:
"com.class.that.is.responsible": ERROR
Run Code Online (Sandbox Code Playgroud)
yaml 配置中的条目会抑制它们吗?
我正在尝试为我的 Firehose 捕获 Cloudwatch 日志,以在将数据发送到S3目的地时发现任何错误。我创建了一个带有日志详细信息的 cloudformation 模板
"CloudWatchLoggingOptions" : {
"Enabled" : "true",
"LogGroupName": "/aws/firehose/firehose-dev", -->firehose-dev is my firehosedeliverystream name
"LogStreamName" : "s3logs"
},
Run Code Online (Sandbox Code Playgroud)
我已授予必要的 IAM 权限来创建loggroupname和streamname.
{
"Sid": "",
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": [
"arn:aws:logs:*:*:*"
]
}
Run Code Online (Sandbox Code Playgroud)
当我触发模板时,我没有在 cloudwatch 日志中找到任何日志组名和流名。
但是当我们为AWS::Lambda资源提供相同的 IAM 权限时,它会自动创建一个/aws/lambda/mylambdaname日志组名(即)并将日志发送到该组。但是为什么这种情况不适用于 firehose ?
作为解决方法
我手动创建AWS::Logs::LogGroup与名称资源/aws/firehose/firehose-dev和AWS::Logs::LogStream资源使用的名称s3logs。
如果我们使用控制台配置 firehose 传输流,firehose 也会自动创建日志组名称和日志流名称。
通过 cloudformation 配置时,firehose 不能像 aws …
amazon-web-services aws-cloudformation amazon-cloudwatchlogs amazon-kinesis-firehose
我有一个 monorepo,其中每个包都应构建为 docker 映像。
我为每个触发子管道的包创建了一个触发器作业。
在 MR 中,我的更改规则被忽略,所有子管道都被触发。
.gitlab-ci.yml
---
workflow:
rules:
- if: $CI_MERGE_REQUEST_ID || $CI_COMMIT_BRANCH
trigger-package-a:
stage: build
trigger:
include: .gitlab/ci/packages/package-gitlab-ci.yml
strategy: depend
rules:
- changes:
- "packages/package-a/**/*"
variables:
PACKAGE: package-a
trigger-package-b:
stage: build
trigger:
include: .gitlab/ci/packages/package-gitlab-ci.yml
strategy: depend
rules:
- changes:
- "packages/package-b/**/*"
variables:
PACKAGE: package-b
done_job:
stage: deploy
script:
- "echo DONE"
- "cat config.json"
stages:
- build
- deploy
Run Code Online (Sandbox Code Playgroud)
包-gitlab-ci.yml
workflow:
rules:
- if: $CI_MERGE_REQUEST_ID
- changes:
- "packages/${PACKAGE}/**/*"
stages:
- bootstrap
- validate
cache: …Run Code Online (Sandbox Code Playgroud) gitlab-ci ×4
gitlab ×3
angular ×1
docker ×1
dropwizard ×1
feign ×1
import ×1
java ×1
logging ×1
micrometer ×1
module ×1
pipeline ×1
python ×1
spring-boot ×1