小编sha*_*mor的帖子

Parallel.ForEach添加到列表

我正在尝试运行连接到远程站点(通过网络)的多个功能并返回通用列表.但我想同时运行它们.

例如:

public static List<SearchResult> Search(string title)
{
    //Initialize a new temp list to hold all search results
    List<SearchResult> results = new List<SearchResult>();

    //Loop all providers simultaneously
    Parallel.ForEach(Providers, currentProvider =>
    {
        List<SearchResult> tmpResults = currentProvider.SearchTitle((title));

        //Add results from current provider
        results.AddRange(tmpResults);
    });

    //Return all combined results
    return results;
}
Run Code Online (Sandbox Code Playgroud)

正如我所看到的,"结果"的多次插入可能同时发生......这可能会导致我的应用程序崩溃.

我怎么能避免这个?

c# parallel-processing locking list

69
推荐指数
5
解决办法
7万
查看次数

php-fpm处理监控/分析

我最近遇到了一个问题,php-fpm进程使用(如在活动进程的数量中)达到最大可用进程,并停止执行其他脚本,直到有问题的进程完成.

更详细一点,我目前的php-fpm设置是:

pm = static
pm.max_children = 100
Run Code Online (Sandbox Code Playgroud)

我正在观看php-fpm的状态页面,大部分时间都显示:

total processes: 100
idle processes: 95-99
active processes: 1-5
Run Code Online (Sandbox Code Playgroud)

这是正常的.但是,几分钟内,活动进程计数会在几秒钟内跳至100,然后恢复到1-5的正常状态.在那段时间内,服务器上运行的所有其他脚本都会停留一段时间.(从浏览器中您只看到页面等待).

现在,我已经检查了它是否在特定的流量峰值,但它没有.它也可以在当天最低的流量计数中发生.

我相信某个脚本,甚至只是在特定情况下,会导致php出于某种原因简单地使用所有可用的进程.

一旦我们从5.2.X迁移到PHP 5.4.X,就会出现此问题

我们目前有大约60个网站,因此有点难以浏览每个网站的网页并进行检查.

nginx日志中没有任何内容(无论如何都没有关键,有一些通知等).

我正在尝试做的,是以某种方式跟踪/配置文件/监视哪个php-fpm脚本正在使用这些进程,所以我将知道从哪里开始寻找问题.

这可能吗?也许是另一种方法?

更新

以下是1小时内PHP-FPM流程计数的图表,间隔为1分钟:

图形

我用红色标记了我正在谈论的跳跃.尖峰时的内存使用量保持不变

php process nginx

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

MySQL表分区按月分配

我有一个巨大的表存储许多跟踪事件,例如用户点击.

该表已经达到数百万的数量,并且每天都在增长.当我尝试从大时间帧中获取事件时,查询开始变慢,并且在阅读了相当多的主题后,我明白分区表可能会提高性能.

我想要做的是每月对表进行分区.

我只找到了指导如何每个月手动分区的指南,有没有办法告诉MySQL按月分区,它会自动执行?

如果没有,考虑到我的分区列是手动执行它的命令是一个日期时间?

mysql partition

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

使用javascript上传前缩小图片

我正在使用phonegap编写一个跨平台的移动应用程序,我有一个文件上传输入,用于单个图像的图像上传.

问题是上传的大多数图片都是使用手机拍摄的,大小约为4MB.

我想大幅缩小这些图像,因为我根本不需要高质量的图像.

另外,我需要将它们转换为base64而不是真实的图像文件.(我已经使用FileReader了)

任何想法如何实现这一目标?也许使用帆布或什么?

更新: 这是我到目前为止:

function shrink() {
    var self = this;

    var reader = new FileReader(); // init a file reader
    var file = $('#file-input').prop('files')[0]; // get file from input

    reader.onloadend = function() {

        // shrink image
        var image = document.createElement('img');
        image.src = reader.result;

        var canvas = document.createElement('canvas');
        var ctx = canvas.getContext('2d');
        ctx.drawImage(image, 0, 0, 300, 300);
        var shrinked = canvas.toDataURL('image/jpeg');
        console.log(shrinked);
    };

    reader.readAsDataURL(file); // convert file to base64*/
}
Run Code Online (Sandbox Code Playgroud)

但我得到的只是一张黑色图片谢谢

javascript image shrink

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

测试Windows安装程序

我在一家软件公司工作,我们有一个使用自定义安装程序安装的Windows操作系统产品.

我们希望有一个自动化系统,每天运行安装程序,确保一切安装和功能(安装应用程序,出现在添加/删除,创建快捷方式,创建注册表项,安装浏览器插件等)我也想要使用某种GUI宏来测试应用程序的功能.

有什么我想要的东西吗?

windows testing installer user-interface

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