问题列表 - 第28512页

MongoDB与Redis vs. Cassandra的快速写入临时行存储解决方案

我正在构建一个跟踪和验证广告展示次数和点击次数的系统.这意味着有很多插入命令(大约平均90 /秒,峰值为250)和一些读取操作,但重点是性能并使其快速.

该系统目前在MongoDB上,但从那时起我就被介绍给Cassandra和Redis.去两个解决方案中的一个,而不是留在MongoDB上是不是一个好主意?为什么或者为什么不?

谢谢

mongodb cassandra nosql redis

39
推荐指数
5
解决办法
4万
查看次数

python中带括号的参数

如果你看下面的python代码行:

bpy.ops.object.particle_system_add({"object":bpy.data.objects[2]})
Run Code Online (Sandbox Code Playgroud)

你会看到参数中有大括号括起来的东西.任何人都可以告诉我括号是什么(一般来说)?我在python中没有真正看到这种类型的语法,我找不到任何文档.

任何帮助是极大的赞赏.谢谢.

python parameters curly-braces python-3.x

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

php大多数内存有效的方式返回文件

所以我有一堆文件,一些可以高达30-40mb,我想使用PHP来处理文件的安全性,所以我可以控制谁有权访问它们

这意味着我有一个像这个粗略的例子的脚本

$has_permission = check_database_for_permission($user, filename);

if ($has_permission) {
   header('Content-Type: image/jpeg'); 
   readfile ($filename);    
   exit; 
} else {
  // return 401 error
}
Run Code Online (Sandbox Code Playgroud)

我讨厌每个请求将整个文件加载到内存中,因为它会很快咀嚼我的服务器上的所有内存并同时提出几个请求

所以有几个问题

  1. readfile是最有效的内存方式吗?
  2. 是否有一些更好的方法来实现相同的结果,我忽略了?

服务器:apache/php5

谢谢

php apache

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

任何运行时错误后在Matlab中指定回调

有没有办法指定在Matlab中发生错误时要运行的代码?谷歌搜索我遇到了RunTimeErrorFcn和daqcallback,但我相信这些特定于数据采集工具箱.当我遇到一个bug时,我想要一些东西,比如访问一个未分配的变量.(我使用一个名为PsychToolbox的库来接管GPU,所以我希望能够在返回命令提示符之前清除它的屏幕.)

error-handling matlab

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

接口是否可以定义ac#-constructor的签名

我有一个.net-app,它提供了一个用插件扩展应用程序的机制.每个插件必须实现一个插件接口,并且还必须提供一个接收一个参数(资源上下文)的构造函数.

在插件类的实例化期间,我通过反射查看,如果需要的构造函数存在,如果是,我实例化类(通过Reflection).如果构造函数不存在,我抛出一个异常,说明不能创建插件,因为所需的构造函数不可用.

我的问题是,如果有一种方法可以在插件接口中声明构造函数的签名,那么实现插件接口的每个人都必须提供具有所需签名的构造函数.这样可以简化插件的创建.

我不认为存在这种可能性,因为我认为这样的功能不属于设计接口的主要目的,但也许有人知道这样做的声明,例如:

public interface IPlugin {
    ctor(IResourceContext resourceContext);
    int AnotherPluginFunction();
}
Run Code Online (Sandbox Code Playgroud)

我想补充一点,我不想将构造函数更改为无参数,然后通过属性设置资源上下文,因为这会使插件的创建变得更加复杂.编写插件的人不是具有深度编程经验的人.插件用于计算应用程序可视化的统计数据.


感谢所有的答案.

我已经决定,我让它成为一个接口,因为我不想强迫插件程序员从一个抽象类继承,以便他或她失去从一个自己的基类继承的可能性.此外,从抽象类派生并不能确保插件程序员真正提供所需的构造函数.它使它更有可能(程序员仍然有可能只添加一个包含所需参数的构造函数,但也有其他参数,这也很糟糕.请参阅Ken Browning答案的评论).

虽然我在帖子中提到我不想要这样的属性,但我将Danny Varod的答案标记为已被接受,因为我认为在我的情况下这是最合适的解决方案.感谢所有回答的人.

.net c#

10
推荐指数
3
解决办法
6013
查看次数

为什么使用匿名委托声明此事件?

我见过人们定义他们的事件是这样的:

public event EventHandler<EventArgs> MyEvent = delegate{};
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下如果没有它,这与定义它有何不同?是否要在提升事件时避免检查null?

c# events

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

以编程方式在资源管理器中选择文件

在我的应用程序中,我可以通过编程方式打开资源管理器并使用以下代码选择文件:

void BrowseToFile(LPCTSTR filename)
{
    CString strArgs; 
    strArgs = _T("/select,\"");
    strArgs += filename; 
    strArgs += _T("\"");

    ShellExecute(0, _T("open"), _T("explorer.exe"), strArgs, 0, SW_NORMAL);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我第二次使用不同的文件调用此函数,但在同一文件夹中,资源管理器中的选择不会更改为新文件,而是保留在以前的文件中.

例如,如果我调用我的函数C:\path\to\file1.txt,将打开一个新的资源管理器窗口file1.txt并将被选中.如果我第二次调用我的函数C:\path\to\file2.txt,将激活现有的资源管理器窗口,但选择仍将打开file1.txt.

有没有办法强制资源管理器更新选择或更好的方法来实现这一目标?

编辑:

上面提到的行为是在Windows XP上.似乎Vista/Win7上的行为是不同的.每次调用都会打开一个新的资源管理器实例并选择该文件.

我的主要目标是将Visual Studio选项复制到文档的Open Containing Folder.Visual Studio中的此功能在XP,Vista和Win7上的行为相同.如果具有相同文件夹的另一个实例已打开,则不会创建新实例,但会将选择更新为新文件.

如果有人知道Visual Studio如何实现这一点,我很想知道它.

c++ windows explorer shellexecute

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

杀死mysqld进程

我有一个约800k行的表.我跑了一个update users set hash = SHA1(CONCAT({about eight fields})) where 1;

现在我有一个挂起的Sequel Pro流程,我不确定这个mysqld过程.

这是两个问题:

  1. 杀死这些程序可能带来什么危害?我正在开发一个单独的数据库,因此系统上的其他数据库不会受到任何损害,对吧?

  2. 假设您必须更新这样的表.什么是更快/更可靠的更新方法,而无需编写单独的脚本.

我只是检查与phpMyAdmin,它看起来好像完成查询.我仍然使用Sequel Pro使用我的两个核心100%...

mysql sql database sql-update

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

在Python中有效地按键选择字典项

假设我有一个字典,其键是字符串.如何从仅包含某些列表中存在的键的字典中有效地创建新字典?

例如:

# a dictionary mapping strings to stuff
mydict = {'quux': ...,
          'bar': ...,
          'foo': ...}

# list of keys to be selected from mydict
keys_to_select = ['foo', 'bar', ...]
Run Code Online (Sandbox Code Playgroud)

我想出的方式是:

filtered_mydict = [mydict[k] for k in mydict.keys() \ 
                   if k in keys_to_select]
Run Code Online (Sandbox Code Playgroud)

但我认为这是非常低效的,因为:(1)它需要使用keys()枚举键,(2)它需要每次在keys_to_select中查找k.我想,至少有一个可以避免.有任何想法吗?如果需要,我也可以使用scipy/numpy.

python numpy scipy

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

我可以颠倒多播委托事件的顺序吗?

当您在.NET中订阅事件时,订阅将添加到多播委托.触发事件时,将按订阅顺序调用委托.

我想以某种方式覆盖订阅,以便订阅实际上以相反的顺序触发.可以这样做,怎么做?

我认为这样的事情可能就是我所需要的:

public event MyReversedEvent
{
    add { /* magic! */ }
    remove { /* magic! */ }
}
Run Code Online (Sandbox Code Playgroud)

c# events

12
推荐指数
3
解决办法
3019
查看次数