我在 s3 中有一个 javascript 文件,并由 cloudfront 缓存提供服务。但有时它开始显示
Uncaught SyntaxError: Unexpected token
Run Code Online (Sandbox Code Playgroud)
在控制台中并且根本不加载。
但是当我在隐身窗口中打开相同的网址时,它工作得很好。该js文件是由react create app生成的,文件大小为2.05MB。
更新
问题看起来与Service Worker类似。因为js文件从缓存返回时内容类型设置为text/html。看到这个浏览器尝试渲染 js 并失败。即使文件的内容与预期不同,返回的不是 js 文件,而是我的 index.html。但是错误的文件怎么能被缓存呢?
出于某种原因,我必须使用环境变量而不是将系统属性传递给 mvn 命令。因此,我使用 ${env.PROFILE} 作为属性名称, pom.xml 中的配置文件设置显示如下:
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>${env.PROFILE}</name>
<value>dev</value>
</property>
</activation>
<properties>
<profile.assembly.suffix></profile.assembly.suffix>
</properties>
</profile>
<profile>
<id>online</id>
<activation>
<property>
<name>${env.PROFILE}</name>
<value>online</value>
</property>
</activation>
<properties>
<profile.assembly.suffix>-online</profile.assembly.suffix>
</properties>
</profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)
然后,我尝试将配置文件激活为在线,但失败了,命令行显示如下:
E:\Tetris\src\1_Branches\rtm_tetris_zhugan\Server\LobbyServer>set PROFILE=online
E:\Tetris\src\1_Branches\rtm_tetris_zhugan\Server\LobbyServer>echo %PROFILE%
online
E:\Tetris\src\1_Branches\rtm_tetris_zhugan\Server\LobbyServer>mvn help:active-profiles
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for Fusion:LobbyServer:jar:1.0
[WARNING] 'dependencies.dependency.systemPath' for Fusion:Fusion-Core:jar should not point at files within the project directory, ${project.basedir}/../libs/Fusion-Core-2.0.jar will be unresolvable by dependent projects @ …
Run Code Online (Sandbox Code Playgroud) 以下是使用 redis 的优缺点。
优点
快速地
事务(因为单线程)
缺点
无辅助键支持
不支持重新索引
与 mongodb、dynamodb 不同,没有可靠的变更流
成本(由于所有数据都必须保存在内存中,我们需要越来越多的内存)
没有可靠的持久性。(PS 人们说 rdb 快照用作 redis 的备份存储,但帮助我理解当我们有 12 GB ram 并且我们放置 13 GB 数据时会发生什么。redis 将只有 12 GB 数据,但如果使用 rdb 快照如果我用 20gb ram 调出另一个 redis,它会保存我所有的数据还是 1 gb 永远消失了。这种机制有多可靠??)
没有自动平衡键。(应用级分片是必须的)
考虑到上述优点和缺点,我只看到少数用例可以将 redis 作为唯一和主要数据存储。喜欢
我错过了什么吗?与其他数据库(如 mongodb、mysql)相比,redis 缺少哪些额外功能(这里我只谈论生产就绪和可靠性,而不是开始 nosql 与 sql 辩论:))。
给定以下单元测试,我可以轻松测试是否已发出特定网址的请求。有没有办法做相反的事情,验证是否未提出特定网址的请求?
即验证是否提出了要求:
stubFor(post(urlEqualTo("/login")));
webclient.submit(testLogin);
verify(postRequestedFor(urlMatching("/login")
Run Code Online (Sandbox Code Playgroud)
我想做的-确认未提出请求:
stubFor(post(urlEqualTo("/login")));
webclient.submit(testLogin);
verify(postRequestedFor(urlNotMatching("/login")
Run Code Online (Sandbox Code Playgroud) 我有一个数据库
磁盘大小19.032GB
(使用show dbs
命令)
数据大小56 GB
(使用db.collectionName.stats(1024*1024*1024).size
命令)
在使用命令mongodump获取 mongodump 时,我们可以设置参数 --gzip。这些是我在有和没有这个标志的情况下的观察结果。
命令 | 转储中花费的时间 | 转储的大小 | 恢复时间 | 观察 |
---|---|---|---|---|
与 gzip | 30分钟 | 7.5GB | 20分钟 | 在 mongostat 中,插入速率范围为 30K 到 80k par sec |
没有 gzip | 10分钟 | 57GB | 50分钟 | 在 mongostat 中,插入速率非常不稳定,范围从 8k 到 20k par sec |
转储是从 8 核、40 GB 内存的机器(机器 B)到 12 核、48GB 内存的机器(机器 A)获取的。并从机器 A 恢复到 12 核、48 GB 机器(机器 C),以确保 mongo、mongorestore 和 mongodump 进程之间不存在资源争用。蒙戈版本4.2.0
我有几个问题,比如
我是c编程的新手,我正在努力理解这个sizeof
功能.
请帮我理解这个程序是如何工作的:
#include<stdio.h>
main( )
{
printf ( "\n%d %d %d", sizeof ( '3'), sizeof ( "3" ), sizeof ( 3 ) ) ;
}
Run Code Online (Sandbox Code Playgroud)
我得到输出为4 2 4
.
但是,我无法理解我得到此输出的原因.请解释一下.
排队线程池有 4 个指标
jmx.metrics.org.eclipse.jetty.util.thread.QueuedThreadPool.dw.size.Value
jmx.metrics.org.eclipse.jetty.util.thread.QueuedThreadPool.dw.jobs.Value
jmx.metrics.org.eclipse.jetty.util.thread.QueuedThreadPool.dw.utilization.max.Value
jmx.metrics.org.eclipse.jetty.util.thread.QueuedThreadPool.dw.utilization.Value
Run Code Online (Sandbox Code Playgroud)
他们的意思是什么?什么是理想值?
我有一个像这样复杂的业务对象
public class BusinessObject {
public Team1Object object1;
public Team2Object object2;
public String debug;
...
}
Run Code Online (Sandbox Code Playgroud)
我使用责任链模式的轻微修改来构建上述对象。
这是我的界面
public interface BusinessObjectAppender {
public void append(BusinessObjectBuilder businessObject, Context someApplicationContext);
}
Run Code Online (Sandbox Code Playgroud)
现在团队可以来编写他们的附加程序。像这样
public class Team1ObjectAppender implements BusinessObjectAppender {
public void append(BusinessObjectBuilder businessObject, Context someApplicationContext) {
Team1Object object1 = somehowComputeObject1();
businessObject.object1(object1)
}
}
Run Code Online (Sandbox Code Playgroud)
public class Team2Appender implements BusinessObjectAppender {
public void append(BusinessObjectBuilder businessObject, Context someApplicationContext) {
Team2Object object2 = somehowComputeObject2();
businessObject.object2(object2)
}
}
Run Code Online (Sandbox Code Playgroud)
通过使用这种方法,在复杂的对象构造的情况下,逻辑不会膨胀。
但它也存在这样的问题
Team1 周围没有任何护栏,不会干扰另一个团队的对象或依赖另一个团队的数据。除了代码审查之外。
BusinessObject 是多态的情况下,一旦我创建了 1 种类型的构建器,就不可能在附加程序中更改它。
问题
这是正确的做法吗? …
java oop design-patterns chain-of-responsibility builder-pattern
我需要仅在添加标签(名称 - 管理和值 - 测试)时创建存储桶。下面是我写的代码。但即使我提到了正确的标签名称和值,我在创建存储桶时也遇到了问题。
{
"Version": "1.3.2",
"Statement": [
{
"Sid": "TaggingStatement",
"Effect": "Allow",
"Action": [
"s3:List*",
"s3:Get*"
],
"Resource": "*"
},
{
"Sid": "TaggingStatement2",
"Effect": "Allow",
"Action": "s3:CreateBucket",
"Resource": "*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:TagKeys": "Management"
},
"ForAllValues:StringEquals": {
"aws:RequestTag/Management": "Test"
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)