随着运行完成PHPUnit套件所需的时间增加,我们的团队开始怀疑是否有可能并行运行单元测试.最近我读了一篇关于Paraunit的文章,Sebastian Bergman也写道,他将在PHPUnit 3.7中添加并行性.
但是,集成测试仍然存在问题,或者更常见的是与DB交互的测试.为了保持一致性,必须重置testDB并在每次测试后加载夹具.但是在并行测试中,竞争条件存在问题,因为所有进程都使用相同的DB.
因此,为了能够并行运行集成测试,我们必须为每个进程分配自己的数据库.我想问一下,如果有人对如何解决这个问题有一些想法.也许在另一个xUnit实现中已经实现了这个问题的解决方案.
在我的团队中,我们使用的是MongoDB,因此一个解决方案是以编程方式为每个PHPUnit进程创建一个配置文件,并生成数据库名称(对于此过程),在setUp()方法中我们可以将主TestDb克隆到此临时数据库中.但在我们开始实施这种方法之前,我想问一下你对这个主题的看法.
php phpunit integration-testing unit-testing parallel-testing
我正在配置 nginx 进行基本的 DDoS 防护。我想使用http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html中所述的 limit_conn 模块。我特别不明白这个例子:
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;
server {
...
limit_conn perip 10;
limit_conn perserver 100;
}
Run Code Online (Sandbox Code Playgroud)
描述是:
例如,以下配置将限制每个客户端IP与服务器的连接数,同时限制与虚拟主机的总连接数
第一部分很清楚,我允许来自一个 IP 的同时连接不超过 10 个。
但第二条规则是否意味着我只允许 100 个连接到我的服务器?因为如果是这样,攻击者只需打开约 100 个连接,就会阻止每个人访问服务器,从而有效地使 DDoS 攻击成功。
我想澄清php-fpm如何使用动态流程管理器管理工作人员.
我们假设我们有以下配置:
pm = dynamic
pm.max_children = 100
pm.start_servers = 30
pm.min_spare_servers = 20
pm.max_spare_servers = 60
Run Code Online (Sandbox Code Playgroud)
如你所见,这是关于php-fpm如何管理进程的一个普遍问题.更具体地说,我想了解php-fpm中pm.max_children和pm.max_spare_servers之间的区别.