小编Cyr*_* N.的帖子

如何在考虑并发性的情况下更新多行?

我有一个用作排队系统的 MongoDB 数据库。它跨多个服务器使用,每个服务器运行多个代码实例。

到现在为止,我一直在使用find_one_and_delete挂起的下一个项目,但我最近不幸的是,该功能非常占用资源,当集合达到 100k 条目时,MongoDB 会变慢很多,并且需要几秒钟的时间来响应。

我不想尝试获取一个条目,而是希望通过确保没有并发冲突来检索该集合中的 X 项。

不幸的是,据我所知, update_many 不包含limit.


到目前为止,这是我想出的:

  1. 使用唯一 ID (uuid) 更新所有待处理项目
  2. 找到下一个具有该 uuid 的 X 项,将它们保存在本地并在队列中删除它们
  3. 使用 uuid 更新所有其他项目以设置为 None (释放它们)。

不是很好,但在我的情况下,它解决了问题并且看起来工作正常。

我在这里要问的是,是否有办法以更快(limit在 update_many 上使用)和面向并发的方式与 MongoDB做到这一点?

concurrency mongodb

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

ARC 签名消息如何确保 AR 标头合法?

我正在尝试了解ARC 策略,根据我的理解,带有 ARC 标头的电子邮件意味着之前的身份验证结果标头已由发件人验证。或者,来自维基百科:

Authenticated Received Chain (ARC) 是一种电子邮件身份验证系统,旨在允许邮件列表或转发服务等中间邮件服务器对电子邮件的原始身份验证结果进行签名。当中间服务器的处理导致电子邮件的 SPF 和 DKIM 记录无效时,这允许接收服务验证电子邮件。

例如,作为中间人,我收到某人发来的一封使用 DKIM 签名的电子邮件。我验证 SPF、DKIM 和 DMARC,相应地设置 AR 标头,并用 ARC (AAR/AS/AMS) 包装它们。然后,我更改主题以添加“[FWD] - {subject}”,并从我的服务器发送它,返回路径是我从客户端获得的路径,我没有 SPF 策略要发送的路径。

接收方如果处理 ARC,将看到该消息已签名,并且原始 SPF/DKIM/DMARC 受到尊重,以及我的返回路径,现在是错误的(因为我的服务器 IP 无权发送电子邮件)由于 ARC,来自发件人域的邮件仍被接受。由于 ARC,现在由于主题更改而失败的 DKIM 也被接受。

如果我的理解是正确的,到目前为止,这很好。

接收方如何确定我是合法的

根据这个规范,我完全可以制作一封假邮件,说最初尊重SPF/DKIM/DMARC,并用ARC包裹整个邮件。然后我可以使用(假的)返回路径发送此电子邮件,并相信该电子邮件是有效的,无论其失败如何,因为我已经与 ARC 签署了。

我不认为(我不希望)在使用 ARC 时存在可以信任的“允许的”注册商列表,并且作为中间人,我需要在这里注册,因为这破坏了 ARC 的结构。互联网。(是的)。

所以我的问题如下:

接收方如何认为使用 ARC 签署电子邮件的发件人是合法且值得信任的——或者不可信?

抱歉消息太长,这是一个土豆:

email authentication arc-signature

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

如何循环scala模板中的flash元素?

我很难尝试将一些模板从1.2.4翻译成2.0.

到目前为止,我设法遍历所有的flash元素,但我想分别获取Key和Message(@msgKey包含一个列表,我不知道如何拆分它:/)=> (success, Your data has been updated).

一点点的帮助将不胜感激!:)

这是原始代码:

#{if flash.data.size() > 0}
    #{list items:flash.data, as:'msg'}
        #{if msg.key.substring(0, 4).equals('info')}#{set msg_type:'info' /}#{/if}
        #{if msg.key.substring(0, 4).equals('succ')}#{set msg_type:'success' /}#{/if}
        #{if msg.key.substring(0, 4).equals('warn')}#{set msg_type:'warning' /}#{/if}
        #{if msg.key.substring(0, 4).equals('erro')}#{set msg_type:'error' /}#{/if}
        <div class="alert alert-${msg_type}" data-dismiss="alert">  
            <a title="Close that message" class="close">×</a>
            ${msg.value.raw()}
        </div>
    #{/list}
#{/if}
Run Code Online (Sandbox Code Playgroud)

这是新的:

@if(!flash.isEmpty()) {
    @for(msgKey <- flash) { 
        <div class="alert alert-@msgKey" data-dismiss="alert">      
            <a title="@Messages("misc.message.close")" class="close">×</a>
            @msgKey
        </div>
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助,我感谢!

templates scala playframework-2.0

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

使用python导入Salesforce报告数据

我是sfdc的新手。我有用户已创建的报告。我想使用python将报告的数据转储到csv / excel文件中。我看到有几个python软件包。但是我的代码给出了一个错误

from simple_salesforce import Salesforce
sf = Salesforce(instance_url='https://cs1.salesforce.com', session_id='')
sf = Salesforce(password='xxxxxx', username='xxxxx', organizationId='xxxxx')
Run Code Online (Sandbox Code Playgroud)

我可以掌握设置API的基本步骤和一些示例代码吗

salesforce python-2.7

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

Prestashop - 模块,SEO和URL和参数?

我为Prestashop创建了一个模块,它将根据参数(&id = X)中的给定ID显示内容.

我想为这个模块设置一个不错的网址.

使用SEO和URLS,我发现它是可能的,但它会在URL中保留?id = X.

例如,如果我将我的模块的URL定义为

/pretty-module
Run Code Online (Sandbox Code Playgroud)

我将拥有相同的链接,但具有不同的ID:

/pretty-module?id=1
/pretty-module?id=23
Run Code Online (Sandbox Code Playgroud)

我想做的是以下内容:

/pretty-module => will set id to 1
/even-prettier-module => will set id to 23
Run Code Online (Sandbox Code Playgroud)

我没有在Backoffice的SEO和URLS页面中看到"参数"选项,所以我想知道是否可以这样做.

seo prestashop

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

Vuejs无法加载svg图像?

在我的一个组件中,我正在尝试加载svg映像,但vuejs/webpack失败.

这是我的代码:

<template>
    <img src="../../assets/public/images/sad.svg" />
</template>

<script>
export default {}
</script>
Run Code Online (Sandbox Code Playgroud)

而错误:

./src/assets/public/images/sad.svg中的错误
模块解析失败:/home/cabox/workspace/src/assets/public/images/sad.svg第1行:意外的令牌<您可能需要一个适当的加载器来处理此文件类型.
|
|
| @ ./~/vue-html-loader!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/tooltip.vue 1:205-258 1:592-645

据我所知,Vuejs(或Webpack)试图解释.svg的内容.这不是我想要的.

这是svg的webpack配置:

{ test: "\.svg", loader: "file-loader?mimetype=image/svg+xml" },
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.

javascript webpack vue.js

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

如何使用VueJS将文件复制到根“dist/”文件夹?

在 VueJS 实例上dist运行时npm run build,我需要将一些文件复制到该文件夹中,但我不知道该怎么做。

该文件将类似于sitemap.xmlrobots.txt以及一些其他需要的配置文件。

我最终可以在下面static/或其他任何地方创建一个新文件夹,然后说“创建后将这些文件复制到 /dist/ 文件夹中”。

是否可以?

更新:我正在使用 Webpack 生成 dist 文件夹。

webpack vuejs2

4
推荐指数
2
解决办法
6708
查看次数

垃圾收集器正在尝试清理连接 asyncmy.connection.Connection

我将尽力在这个问题上做到尽可能完整。

\n

我正在使用 Sanic,一个 ASGI Python 框架,并在此基础上构建了一个数据库管理器。

\n

该数据库管理器使用ContextVar来访问db代码中所有位置的当前实例。

\n

这是与数据库相关的代码:

\n

数据库.py

\n
# -*- coding:utf-8 -*-\n\nfrom sqlalchemy import exc, event\nfrom sqlalchemy.ext.asyncio import create_async_engine, AsyncSession as SQLAlchemyAsyncSession\nfrom sqlalchemy.orm import sessionmaker, Session\nfrom sqlalchemy.pool import Pool, QueuePool, NullPool\nfrom sqlalchemy.exc import OperationalError\nfrom contextvars import ContextVar\nfrom sentry_sdk import push_scope, capture_exception\nfrom sanic import Sanic\n\n\nclass EngineNotInitialisedError(Exception):\n    pass\n\n\nclass DBSessionContext:\n    def __init__(self, read_session: Session, write_session: Session, commit_on_exit: bool = True) -> None:\n        self.read_session = read_session\n        self.write_session = write_session\n        self.commit_on_exit = commit_on_exit\n\n        self.token = …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy sanic

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

如何知道url下载的文件是否不完整?

我正在使用如何使用Java从Internet下载和保存文件这个很棒的片段从网址下载文件:

URL website = new URL("http://www.website.com/information.asp");
ReadableByteChannel rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream("information.html");
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
Run Code Online (Sandbox Code Playgroud)

但是Long.MAX_VALUE,出于安全原因,我宁愿将下载限制为2mb,因此我将其替换为

fos.getChannel().transferFrom(rbc, 0, 2097152);
Run Code Online (Sandbox Code Playgroud)

但现在,我想知道如何处理文件大小超过2mb的情况?

我该怎么做才能检查文件是否损坏?

java corrupt download

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

如何用gcloud更新队列?

我以前appcfg.py用来在Google AppEngine上部署我的(python)应用程序,但我最近切换到gcloud命令.

为了更新队列,我正在做:

/opt/google/google_appengine/appcfg.py -A project-id update_queues .
Run Code Online (Sandbox Code Playgroud)

但是现在有了'gcloud',我不知道怎么做到这一点?

有关信息,以下是我现在部署新版本的方法:

gcloud app deploy --project project-id app.yaml
Run Code Online (Sandbox Code Playgroud)

谢谢 :)

google-app-engine gcloud

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