小编zmb*_*mbq的帖子

实施战略模式.我每次都要"新手"吗?

我正在尝试实施战略模式.这是我实施的一部分:

public List<string> GetOrderedEmployeeNames(IOrderByStrategy strategy)
{
   return GetEmployeeFullNames().OrderBy(strategy.Order);
}
Run Code Online (Sandbox Code Playgroud)

现在每次我调用这个函数我都要写:

var employees = GetOrderedEmployeeNames(new OrderByFamilyName());
Run Code Online (Sandbox Code Playgroud)

每次正确的方式或者我是否错误地实施了这个策略?

c# strategy-pattern

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

模拟Android应用程序刷新内存

我有一个Android应用程序登录到服务器,获取会话ID并在应用程序运行时使用它.会话ID存储在SharedPeferences.

出于某种原因,在一台设备(旧的三星Galaxy S)上,有时当应用程序唤醒时,会话ID消失了 - 无法从SharedPreferences中检索到它,而是返回null.这可能发生在手机大量使用后,需要Android释放内存资源.请注意,应用程序仍处于活动状态,不会从头开始重新启动 - 我的活动只是调用了onResume.

如果我能在模拟器上重现这种行为,我会非常高兴.有没有办法轻推模拟器做同样的事情?

android memory-management emulation

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

将{%url%}传递给Django中的自定义模板标记

我正在开发一个需要多个参数的自定义Django模板标记.其中一个参数是URL.当我尝试这样做时:

{% my_tag arg1 {% url "myview" %} arg3=5 %}
Run Code Online (Sandbox Code Playgroud)

我得到以下模板语法错误: Could not parse the remainder: '{%' from '{%'

如何将URL传递给自定义模板?

django django-templates

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

装饰链

我正在基于Django的@permission_required装饰器构建一些装饰器.这些装饰器只是使用不同的参数调用permission_required装饰器.

例如:

def permission_required_ajax(perm):
    return permission_required(perm, raise_exception=True)
Run Code Online (Sandbox Code Playgroud)

这很好用,我有几个这样的例子.

问题是当我的装饰者完全不接受任何参数时:

def special_permission():
    return permission_required_ajax('special_permission')
Run Code Online (Sandbox Code Playgroud)

这不起作用.当我用@special_permission装饰器装饰一个函数时,我收到以下错误:

TypeError:special_permission()获取0个位置参数,但给出了1

我错过了什么?

python decorator python-decorators

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

Celery 和 RabbitMQ 超时和连接重置

我在 Django 应用程序中的 Windows 10 机器上使用 RabbitMQ 3.6.0 和 Celery 3.1.20。一切都在同一台计算机上运行。我已经将 Celery 配置为 Acknowledge Late ( CELERY_ACKS_LATE=True),现在我遇到了连接问题。

我启动 Celery 工作线程,在处理任务 50-60 秒后,每个工作线程失败并显示以下消息:

无法确认 ###,原因:ConnectionResetError(10054, '现有连接被远程主机强行关闭', None, 10054, None)

(###为任务编号)

当我查看 RabbitMQ 日志时,我看到:

=信息报告==== 2016 年 2 月 10 日::22:16:16 === 接受 AMQP 连接 <0.247.0> (127.0.0.1:55372 -> 127.0.0.1:5672)

=信息报告==== 2016 年 2 月 10 日::22:16:16 === 接受 AMQP 连接 <0.254.0> (127.0.0.1:55373 -> 127.0.0.1:5672)

=错误报告==== 10-Feb-2016::22:17:14 === 关闭 AMQP 连接 <0.247.0> (127.0.0.1:55372 -> 127.0.0.1:5672): {writer,send_failed, {错误,超时}}

该错误恰好发生在 Celery 工作人员正在重置其连接时。

我认为这是一个 AMQP …

django rabbitmq celery

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

Django 查询空的related_set

我有两个具有一对多关系的模型 - 父母和孩子。我想查询所有没有孩子的父母。在 SQL 中,我会做这样的事情:

SELECT p.*
    FROM parent p
    LEFT JOIN children c on (p.id=c.parent_id)
WHERE c.id IS NULL
Run Code Online (Sandbox Code Playgroud)

如何对单个 Django 查询执行相同的操作?

该模型的相关部分是:

class Parent(model):
    ...

class Child(model):
    parent = ForeignKey(Parent, related_name='children')
Run Code Online (Sandbox Code Playgroud)

django left-join

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

为什么跨越AppDomains从SslStream读取成功但返回空缓冲区?

SslStream使用该Read(byte[] buffer, int offset, int count)方法正常阅读时,我得到了预期的结果.

但是,如果我将SslStream对象移动到一个新对象AppDomain,则读取仍然可以正常工作(即返回正确读取的字节数),但该buffer数组为空.

为什么是这样?

c# attributes appdomain marshalling sslstream

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

为两个表之间的公共行添加标志

我有两个表说A和B.B是A的子集.我想要做的是:向表A添加一个标志列(仅用于查看,而不是永久地在表中),并且该标志的值应该是对于A和B之间的公共行是yes,对于非公共行是no.例如:

A table
Column1 Column2 Column3
X1      X2      X3
Y1      Y2      Y3
Z1      Z2      Z3
Run Code Online (Sandbox Code Playgroud)
select * from A where column1=Y1; to get B
Run Code Online (Sandbox Code Playgroud)

现在我的最终输出应该是

Column1 Column2 Column3 FLAG
X1      X2      X3      NO   
Y1      Y2      Y3      YES 
Z1      Z2      Z3      NO
Run Code Online (Sandbox Code Playgroud)

我必须在1 sql语句中的代码块下面的所有内容(提取B和添加标志).我只能提取B.无法添加标志

使用oracle 11.2.0.2.0,sqlplus

sql oracle

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

ListFragment - 如何添加菜单?

我有一个ListFragment,我必须添加一个菜单.这是我的代码:listuser_menu:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:id="@+id/any_option"
    android:title="In Context Menu" />
</menu>
Run Code Online (Sandbox Code Playgroud)

我的ListFragment:

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    View mFooterView;
    // We need to use a different list item layout for devices older than Honeycomb
    int layout = Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ?
    android.R.layout.simple_list_item_activated_1:android.R.layout.simple_list_item_1;
    if(getListAdapter()==null){
        // init adapter
        adapter=new UserArrayAdapter(getActivity(),
                MOBILE_OS);
    }
    else{
            adapter.notifyDataSetChanged(); 
        } 

    // set adapter
    registerForContextMenu(getListView());
    setListAdapter(adapter);

}
@Override
public void onCreateContextMenu(final ContextMenu menu, final View v,
final ContextMenuInfo menuInfo){
    menu.clear();
    super.onCreateContextMenu(menu, v, menuInfo);   
    final MenuInflater inflater = …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-fragments android-listfragment

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

如何在没有访问密钥和秘密密钥的情况下写入只写SQS队列

我有一个网站,该网站将客户端的消息写入Amazon SQS队列。每个人都可以写到队列中。我们有一个服务器端进程,该进程读取队列消息并进行处理。

队列配置了对所有人的写访问权限,这是其策略:

{
  "Version": "2012-10-17",
  "Id": "arn:aws:sqs:.../SQSDefaultPolicy",
  "Statement": [{
      "Sid": "Sid1537097246229",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "SQS:SendMessage",
      "Resource": "arn:aws:sqs:..."
  }]
}
Run Code Online (Sandbox Code Playgroud)

但是,如果没有访问密钥和秘密密钥,我们似乎无法写入队列。AWS开发工具包返回错误,指出未提供凭证。我们正在使用AWS SQS文档中描述的代码。

javascript amazon-sqs amazon-web-services

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