小编bes*_*hes的帖子

Chrome 中缓存的 js 文件未捕获 SyntaxError: Unexpected token <

我在 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。但是错误的文件怎么能被缓存呢?在此输入图像描述

browser google-chrome amazon-cloudfront

6
推荐指数
0
解决办法
1076
查看次数

如何使用环境变量激活 Maven 配置文件?

出于某种原因,我必须使用环境变量而不是将系统属性传递给 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)

maven maven-profiles

6
推荐指数
2
解决办法
6249
查看次数

使用 Redis 作为唯一和主数据库

以下是使用 redis 的优缺点。

优点

  1. 快速地

  2. 事务(因为单线程)

缺点

  1. 无辅助键支持

  2. 不支持重新索引

  3. 与 mongodb、dynamodb 不同,没有可靠的变更流

  4. 成本(由于所有数据都必须保存在内存中,我们需要越来越多的内存)

  5. 没有可靠的持久性。(PS 人们说 rdb 快照用作 redis 的备份存储,但帮助我理解当我们有 12 GB ram 并且我们放置 13 GB 数据时会发生什么。redis 将只有 12 GB 数据,但如果使用 rdb 快照如果我用 20gb ram 调出另一个 redis,它会保存我所有的数据还是 1 gb 永远消失了。这种机制有多可靠??)

  6. 没有自动平衡键。(应用级分片是必须的)

考虑到上述优点和缺点,我只看到少数用例可以将 redis 作为唯一和主要数据存储。喜欢

  1. 会话存储。

我错过了什么吗?与其他数据库(如 mongodb、mysql)相比,redis 缺少哪些额外功能(这里我只谈论生产就绪和可靠性,而不是开始 nosql 与 sql 辩论:))。

database redis

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

使用WireMock,我们如何验证未发出给定URL的请求?

给定以下单元测试,我可以轻松测试是否已发出特定网址的请求。有没有办法做相反的事情,验证是否未提出特定网址的请求?

即验证是否提出了要求:

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)

java wiremock

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

mongodb 的 bson 与 gzip 转储

我有一个数据库

磁盘大小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

我有几个问题,比如

  1. 2 个转储之间的功能差异是什么?
  2. 可以压缩 bson 转储以使其压缩吗?
  3. 索引数量如何影响 mongodump 和恢复过程。(如果我们删除一些唯一索引然后重新创建它,是否会加快总转储和恢复时间?考虑到在执行 insert …

mongodb mongorestore mongodump

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

请解释sizeof()的输出

我是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.

但是,我无法理解我得到此输出的原因.请解释一下.

c sizeof

3
推荐指数
2
解决办法
3723
查看次数

了解 Dropwizard JMX 指标排队线程池

排队线程池有 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)

他们的意思是什么?什么是理想值?

java multithreading dropwizard

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

良好的构建器模式链

我有一个像这样复杂的业务对象

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)

通过使用这种方法,在复杂的对象构造的情况下,逻辑不会膨胀。

但它也存在这样的问题

  1. Team1 周围没有任何护栏,不会干扰另一个团队的对象或依赖另一个团队的数据。除了代码审查之外。

  2. BusinessObject 是多态的情况下,一旦我创建了 1 种类型的构建器,就不可能在附加程序中更改它。

问题

  1. 这是正确的做法吗? …

java oop design-patterns chain-of-responsibility builder-pattern

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

仅在创建标签时创建 Amazon S3 存储桶

我需要仅在添加标签(名称 - 管理和值 - 测试)时创建存储桶。下面是我写的代码。但即使我提到了正确的标签名称和值,我在创建存储桶时也遇到了问题。

{
    "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)

amazon-s3 amazon-web-services amazon-iam aws-cli

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