小编red*_*off的帖子

如何使用angularjs $ q顺序链接promise?

在promise库Q中,您可以执行以下操作来按顺序链接promise:

var items = ['one', 'two', 'three'];
var chain = Q();
items.forEach(function (el) {
  chain = chain.then(foo(el));
});
return chain;
Run Code Online (Sandbox Code Playgroud)

但是,以下内容不适用于$ q:

var items = ['one', 'two', 'three'];
var chain = $q();
items.forEach(function (el) {
  chain = chain.then(foo(el));
});
return chain;
Run Code Online (Sandbox Code Playgroud)

chaining sequential angularjs q angular-promise

15
推荐指数
3
解决办法
3万
查看次数

cloudwatch 指标过滤或排除

我想知道是否可以在 cloudwatch 指标过滤器中同时使用 OR 和排除语法。我一直在阅读文档并尝试不同的组合,但没有成功。

这是我的测试数据:

[ABC] - 错误 2020-01

[ABC] - 错误 2020-01

错误 2020-01

警告

2020-01-29T02:13:08.342-08:00

我喜欢查找包含 ERROR 或 WARN 但不包含 ABC 的条目,我尝试过:

?错误?警告 - “ABC”

但这行不通。

谢谢

amazon-cloudwatch

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

如何从laravel服务?

我正在尝试使用带有laravel的swagger来自动记录我们的RESTful API.目标是在laravel控制器中保持swagger注释,然后swagger解析注释并生成相关的.json/.php文件.理想情况下,我希望laravel项目能够提供swagger文件,以便将所有内容保存在同一个引擎盖下并保持同步.

为了实现这一点,我在laravel项目的根目录中创建了一个docs目录(public所在的目录).然后我将以下路由添加到routes.php:

Route::get('docs/{page?}', function($page='index.php') {
    header('Access-Control-Allow-Origin: *');
    $parts = pathinfo($page);
    $path = $_SERVER["DOCUMENT_ROOT"] . "/../docs/$page";
    if ($parts['extension'] === 'php') {
        require($path);
    } else {
        return file_get_contents($path);
    }
});
Run Code Online (Sandbox Code Playgroud)

使用这种方法,我可以将我的swagger-ui网站指向http:// mydomain/docs,剩下的就是魔术.

对于你们所有的laravel大师,这是服务这些招摇文件的最佳方式吗?我尝试将docs目录公开,但这会导致重定向循环.

另一种实现此目的的方法是在我的Web服务器配置中创建一个直接指向这些swagger文件的虚拟主机,但此时我不想进行额外的配置.

static file serving laravel swagger

9
推荐指数
2
解决办法
4524
查看次数

如何使用bluebirdjs顺序链接承诺?

Promise.all()不保证承诺将按顺序解决.如何才能做到这一点?

javascript chaining promise chain bluebird

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

在Ubuntu 16上运行CouchDB的emfile错误

我最近升级到Ubuntu 16和CouchDB 1.6.当我的服务器受到大量连接emfile的攻击时,我在couch.log中遇到错误.我之前看到过这些错误,它们似乎与https://wiki.apache.org/couchdb/Performance中提到的系统资源限制有关.我相信我的主要问题是ERL_MAX_PORTS.我已经将ulimit增加到40000(通过PAM)并添加export ERL_MAX_PORTS=40000到/ etc/default/couchdb.

Ubuntu 16使用systemd所以我添加Environment="ERL_MAX_PORTS=40000"[Service]/etc/systemd/system/multi-user.target.wants/couchdb.service中的部分,但这似乎不起作用.

我甚至尝试修改/ usr/bin/couchdb并添加env ERL_MAX_PORTS=40000到脚本的顶部.

唯一可行的是当我从命令行手动运行couchdb时,例如$ env ERL_MAX_PORTS=40000 && sudo /usr/bin/couchdb.这不是一个理想的解决方案,我宁愿让它与systemd一起工作.

我以前在Ubuntu 14上运行CouchDB 1.5并将我的系统资源限制(请参阅https://wiki.apache.org/couchdb/Performance)增加到大约40000,并且它正在处理许多连接而没有任何问题.

有没有人有幸在Ubuntu 16上解决这个问题?

ubuntu couchdb systemd ubuntu-16.04

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

CouchDB 2是否跨节点同步用户会话?

我目前正在开发一个docker-compose设置,可用于部署CouchDB 2节点集群.我终于让节点工作并且数据在节点间同步,但除非我弄错了,否则看起来CouchDB不会同步用户会话.

我的设置有3个节点,并使用几乎与haproxy.cfg相同的haproxy设置.根据我的配置,haproxy将端口5984上的传入流量路由到所有3个节点上的端口5984.

假设管理员用户名root和密码为password.

我首先登录:

curl -vX POST http://localhost:5984/_session -H 'Content-Type: application/x-www-form-urlencoded' -d 'name=root&password=password'
Run Code Online (Sandbox Code Playgroud)

请注意,返回的AuthSession在下面用作AUTHSESSION.

然后,我发出以下内容:

curl -X PUT http://localhost:5984/mydb --cookie AuthSession=AUTHSESSION -H "X-CouchDB-WWW-Authenticate: Cookie" -H "Content-Type: application/x-www-form-urlencoded"
Run Code Online (Sandbox Code Playgroud)

这通常会失败,"你不是服务器管理员."我可以继续发出相同的PUT,它最终会成功,因为我认为haproxy最终将请求路由到我通过身份验证的单个节点.由于haproxy使用循环法,我将有三分之一的机会击中目标节点.

我认为CouchDB 2可以处理跨节点同步用户会话.我在这做一个愚蠢的假设吗?

(请通过docker-compose查看运行集群以复制我的设置)

使用docker-compose设置的特定解决方案进行更新

根据@lossleader,您需要在[couch_httpd_auth]部分中设置秘密,以使其在节点之间相同.此外,您需要在[admins]部分中设置相同的管理员用户名和密码.我在这里错过的细节是所有节点必须在.ini文件中具有完全相同的密码哈希.拥有相同的明文密码是不够的,否则,每个节点将生成自己的salt并生成不同的哈希.

有关我的完整设置,请参阅通过docker-compose运行集群.

couchdb couchdb-2.0

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

Serverless dynamodb 支持连续备份

使用无服务器框架时如何为 DynamoDB 表启用连续备份?

理想情况下,我会定义一些serverless.yml可以启用自动 DynamoDB 备份的内容

amazon-dynamodb serverless-framework serverless-plugins aws-serverless

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

如何清除mac上的phantomjs缓存?

在用karma测试时,我以某种方式破坏了phantomjs缓存(编写pouchdb测试).如何清除此缓存并返回到我原来的测试环境?

javascript caching phantomjs pouchdb karma-runner

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

CouchDB 2 中的序列号错误还是有其他方法来比较序列号?

I\xe2\x80\x99m 深入研究 CouchDB 2,并且 I\xe2\x80\x99m 发现一些意外的序列号排序。在一种情况下,我发现 _changes feed 中的早期更改具有序列号

\n\n
99-g1AAAAI-eJyd0EsOgjAQBuAGiI-dN9C9LmrBwqzkJtrSNkgQV6z1JnoTvYneBEvbhA0aMU1mkj6-_NMSITTJfYFm2anOcsFT10mpTzyG-LxpmiL32eqoN8aEAcWE9dz_jPCFrnzrHGQchiFM4kSgaV0JqQ6VFF-AtAV2DggMgCEGxrNhQfatc3bOyDiKUalg2EBVoCu66KapazcUh41e69-GssjNIvcWWRokk2oNofwj0MNazy4QFURhGQ0J9LKI-SHPIBHEgiak51nxBhxnrRk\n
Run Code Online (Sandbox Code Playgroud)\n\n

对于同一数据库,我的 _changes feed 中的最后一个序列号是

\n\n
228-g1AAAAJFeJyd0EkOgjAUBuAGTJCdN9AjlIKFruQm2jFAEFes9SZ6E72J3gQ7JW7QCGnyXtLhy-vfAgCWVSjAip96XglW-o5afRJQwNbDMDRVSOuj3ogQJRgiOnL_O8I2urKdd4B1KCRpkRcCxH0npKo7KX4ApQH2HogsAElOKOPTBjkY5-yd2DqKYqnItA91C13BRTdNXY0VWouRrV7JDOvmrLuxlLW4VAlJ5Qzr4aznJ2wskIIy-y9sh7wcYoMKLJKRXOACjTxr3uHcsBE\n
Run Code Online (Sandbox Code Playgroud)\n\n

在浏览器控制台中,以下内容是错误的

\n\n
'228-g1AAAAJFeJyd0EkOgjAUBuAGTJCdN9AjlIKFruQm2jFAEFes9SZ6E72J3gQ7JW7QCGnyXtLhy-vfAgCWVSjAip96XglW-o5afRJQwNbDMDRVSOuj3ogQJRgiOnL_O8I2urKdd4B1KCRpkRcCxH0npKo7KX4ApQH2HogsAElOKOPTBjkY5-yd2DqKYqnItA91C13BRTdNXY0VWouRrV7JDOvmrLuxlLW4VAlJ5Qzr4aznJ2wskIIy-y9sh7wcYoMKLJKRXOACjTxr3uHcsBE' > '99-g1AAAAI-eJyd0EsOgjAQBuAGiI-dN9C9LmrBwqzkJtrSNkgQV6z1JnoTvYneBEvbhA0aMU1mkj6-_NMSITTJfYFm2anOcsFT10mpTzyG-LxpmiL32eqoN8aEAcWE9dz_jPCFrnzrHGQchiFM4kSgaV0JqQ6VFF-AtAV2DggMgCEGxrNhQfatc3bOyDiKUalg2EBVoCu66KapazcUh41e69-GssjNIvcWWRokk2oNofwj0MNazy4QFURhGQ0J9LKI-SHPIBHEgiak51nxBhxnrRk'\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是一个错误还是我需要使用其他方法来比较序列号?

\n\n

在查看我的 _changes feed 中的其他序列号时,看起来它们通常按照我的预期进行排序,但在这种情况下,当第一个数字(例如 99)从 2 位数字跳到 3 位数字时,排序会中断。如果将其归结为一个简单的字符串比较示例,您可以看到 '228' > '99' => false

\n

couchdb couchdb-2.0

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