我们有s3'文件夹'(带有前缀在桶下的对象),有数百万个文件,我们想要弄清楚这些文件夹的大小.
编写我自己的.net应用程序来获取s3对象的列表很容易,但每个请求的最大键数是1000,所以它需要永远.
使用S3Browser查看"文件夹"属性也需要很长时间.我猜是出于同样的原因.
我已经将这个.NET应用程序运行了一周 - 我需要一个更好的解决方案.
有更快的方法吗?
我们正在使用 Openshift(Kubernetes 的托管版本),我正在努力将部署配置创建的所有 pod 的 pod 重启策略从“始终”设置为“从不”,但我不确定 yaml 中的位置做出这一改变。
我们的部署配置如下所示:
kind: DeploymentConfig
metadata:
generation: 19
name: my-deployment-config
namespace: my-deployment-config-namespace
selfLink: >-
...
uid: af918183-c780-11ea-8945-525400d3e4d9
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
name: my-selector
strategy:
activeDeadlineSeconds: 21600
resources: {}
rollingParams:
intervalSeconds: 1
maxSurge: 25%
maxUnavailable: 25%
timeoutSeconds: 600
updatePeriodSeconds: 1
type: Rolling
template:
metadata:
...
spec:
containers:
- image: >-
(image source)
imagePullPolicy: Always
name: my-container
ports:
- containerPort: 8080
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
restartPolicy: Always
schedulerName: default-scheduler …
Run Code Online (Sandbox Code Playgroud) 当我去获取用户的评论时,很难让 ManyToOne 实体映射的简单 OneToMany 工作。其他答案建议您必须使用实体管理器自己创建查询,但这看起来太可怕了。如果你连这样简单的事情都不能在不硬编码内联 sql 的情况下完成,那么 ORM 的意义何在?看来我更有可能做错了什么。
看起来可能与我使用模型从 jsp 访问 user.getComments() 方法有关。不确定执行此操作的最佳方法是什么。
架构:
CREATE TABLE users (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT NOW()
);
CREATE TABLE comments (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
comment_text VARCHAR(255) NOT NULL,
photo_id INTEGER NOT NULL,
user_id INTEGER NOT NULL,
created_at TIMESTAMP DEFAULT NOW(),
FOREIGN KEY(user_id) REFERENCES users(id)
);
Run Code Online (Sandbox Code Playgroud)
用户控制器方法:
@RequestMapping("/user")
public ModelAndView getUser(@RequestParam int id) {
return new ModelAndView("user", "message", userService.getUser(id));
}
Run Code Online (Sandbox Code Playgroud)
用户服务:
@Service …
Run Code Online (Sandbox Code Playgroud) 我需要使用扩展在使用它的类中的所有测试用例之前和之后运行代码。我的测试类需要访问我的扩展类中的一个字段。这可能吗?
鉴于:
@ExtendWith(MyExtension.class)
public class MyTestClass {
@Test
public void test() {
// get myField from extension and use it in the test
}
}
Run Code Online (Sandbox Code Playgroud)
和
public class MyExtension implements
BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback {
private int myField;
public MyExtension() {
myField = someLogic();
}
...
}
Run Code Online (Sandbox Code Playgroud)
myField
如何从我的测试课程访问?
我正在使用Google Play服务创建游戏。当玩家等待与他人建立联系时,他们处于等候室的用户界面中,如下所示:
如您所见,默认的等候室UI非常基本,并且从视觉上看完全不适合我的游戏主题。我想在该UI中更改不同元素的背景,但是布局的定义没有暴露在我可以看到的任何地方。有没有办法编辑等候室的布局?
我使用的是他们的示例应用程序“ ButtonClicker2000”中的代码,网址为:https : //github.com/playgameservices/android-basic-samples
显示等候室的方法如下:
// Show the waiting room UI to track the progress of other players as they enter the
// room and get connected.
void showWaitingRoom(Room room) {
// minimum number of players required for our game
// For simplicity, we require everyone to join the game before we start it
// (this is signaled by Integer.MAX_VALUE).
final int MIN_PLAYERS = Integer.MAX_VALUE;
Intent i = Games.RealTimeMultiplayer.getWaitingRoomIntent(mGoogleApiClient, room, MIN_PLAYERS);
// show waiting …
Run Code Online (Sandbox Code Playgroud) 将 Grafana 与 Graphite 结合使用时,您可以在第三个查询中引用现有查询 A 和 B,如下所示:
sumSeries(#A,#B)
Run Code Online (Sandbox Code Playgroud)
使用 Prometheus 作为数据源,这甚至不起作用:
#A
Run Code Online (Sandbox Code Playgroud)
我假设这与 Prometheus 是数据源这一事实有关。
如何使用 Prometheus 数据源引用 Grafana 中的查询?
我们有一个带有关键字字段的索引,该字段通常是 IP 地址,但并非总是如此。我们希望不仅可以使用关键字,还可以使用 CIDR 表示法来搜索该字段上的索引,该表示法仅支持“ip”类型的字段。从表面上看,这看起来像是多领域的用例。
来自https://www.elastic.co/guide/en/elasticsearch/reference/current/multi-fields.html:
为了不同的目的以不同的方式对同一字段建立索引通常很有用。这就是多领域的目的
所以看来下面的映射对我们来说是有意义的:
{
"mappings": {
"my_field": {
"type": "keyword"
"fields": {
"ip": {
"type": "ip"
"ignore_malformed": true
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,当我们的应用程序有一组非 IP 地址、IP 地址和 CIDR 表示法块/IP 地址范围并需要通过它们进行查询时,我假设应用程序会将该组拆分为包含非 IP 地址的一组另一个带有 ip 地址/CIDR 表示法块,并在我的查询中从中创建两个单独的术语过滤器,如下所示:
{
"query": {
"bool": {
"filter": [
{
"terms": {
"my_field.ip": [
"123.123.123.0/24",
"192.168.0.1",
"192.168.16.255",
"192.169.1.0/24"
]
}
},
{
"terms": {
"my_field": [
"someDomain.com",
"notAnIp.net"
]
}
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是多字段的正确使用吗?我们应该通过其他方式实现这一目标吗?它与使用多字段给出的示例不同,因为它实际上是字段值的子集,而不是全部,因为我使用ignore_malformed 来丢弃子字段中的非 IP 地址。如果有更好的方法,那是什么?
我有一个用例,我需要 100% 的可靠性、幂等性(无重复消息)以及我的 Kafka 分区中的顺序保留。我正在尝试使用事务 API 来设置概念证明来实现这一点。有一个名为“isolation.level”的设置,我很难理解。
在这篇文章中,他们讨论了这两个选项之间的区别。
Kafka 消费者现在有两个新的隔离级别:
read_committed:读取不属于事务的消息和事务提交后的消息。Read_committed 消费者使用分区的结束偏移量,而不是客户端缓冲。该偏移量是属于打开事务的分区中的第一条消息。它也被称为“最后稳定偏移”(LSO)。read_committed 消费者只会读取到 LSO 并过滤掉任何已中止的事务消息。
read_uncommitted:按偏移顺序读取所有消息,无需等待事务提交。此选项类似于 Kafka 消费者的当前语义。
这里的性能含义是显而易见的,但老实说,我正在努力阅读字里行间并理解每个选择的功能含义/风险。似乎read_committed
“更安全”,但我想了解原因。
我有一个有趣的问题,我在想出一个干净的解决方案时遇到了麻烦。我的应用程序读取 json 对象的集合,它需要根据 json 本身中的字段将其反序列化为这个或那个类类型。我无法控制 json 结构或它如何到达我的应用程序。
我已经为可能进入应用程序的每种类型的对象创建了模型,并且我已经到了尝试构建一个服务的地步,该服务拉出“类型”字段,然后使用 ObjectMapper 将 json 反序列化为合适的型号。
JSON 示例:
{
"message_type" : "model1"
"other data" : "other value"
...
}
Run Code Online (Sandbox Code Playgroud)
楷模:
public class Model1 {
...
}
public class Model2 {
...
}
Run Code Online (Sandbox Code Playgroud)
服务?:
public class DynamicMappingService {
public ???? mapJsonToObject(String json) {
String type = pullTypeFromJson();
???
}
private String pullTypeFromJson() {...}
}
Run Code Online (Sandbox Code Playgroud)
我不想要一个大量的 switch 语句,它说“如果类型值是这个,那么反序列化到那个”,但我正在努力想出一些干净的东西来做到这一点。我想可能是一个通用模型类,其中通用参数是模型类型,唯一的字段是该模型类型的实例,但这似乎也不对,我不确定这对我有什么好处。我也可以有一些所有模型都扩展的空抽象类,但这看起来也很糟糕。我该如何处理?举例加分。
我正在将循环 100 次(触发请求并验证响应 100 次)的 Webtest 转换为 NUnit。看来该[Repeat]
属性仅适用于[Test]
、[TestCase]
或任何其他装饰/属性。最干净的方法是什么?我想用这些参数触发一个测试用例 100 次,并且我想在不loopCount
向我的测试用例添加参数并将我的 act 和 assert 部分嵌套在 for 循环中的情况下执行此操作。
下面的代码只运行一次。
[TestCase("arg1", "arg2"), Repeat(100)]
public void testing(string arg1, string arg2)
{
//Arrange
//Act
var response = RequestSender.SendGetRequest();
//Assert
AssertStuff(arg1, arg2);
}
Run Code Online (Sandbox Code Playgroud) 我试图从它所驻留的函数返回(值str((+ x 3)y)).
代码段:
(if (<my condition>)
(values str ((+ x 3) y))
(values str ((+ x 2) y)))
Run Code Online (Sandbox Code Playgroud)
给出错误:
(+ X 3) SHOULD BE A LAMBDA EXPRESSION
Run Code Online (Sandbox Code Playgroud)
但(values str (y (+ x 3)))
工作正常.
为什么?