问题列表 - 第3869页

在ActiveRecord中覆盖create上的id

是否有任何方法可以在创建时覆盖模型的id值?就像是:

Post.create(:id => 10, :title => 'Test')
Run Code Online (Sandbox Code Playgroud)

会是理想的,但显然不会奏效.

activerecord ruby-on-rails

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

在Perl中,中型数据的最佳IPC机制是什么?

我正在设计Perl中的多层应用程序,我想知道各种IPC机制的优缺点.我正在考虑处理中等大小的数据,通常是几十千字节,但高达几兆字节,负载非常轻,每分钟最多几百个请求.

我主要关注的是可维护性和性能(按此顺序).我认为我不需要扩展到多个服务器,或者从我们的主平台(RHEL)移植,但我想这是需要考虑的事情.

我可以想到以下选项:

  • 临时文件 - 简单,可能是速度和存储要求方面最糟糕的选择
  • UNIX域套接字 - 不可移植,不可扩展
  • 互联网套接字 - 便携,可扩展
  • 管道 - 便携式,不可扩展(?)

考虑到可扩展性和可移植性不是我主要关注的问题,我需要了解更多信息.什么是最好的选择,为什么?如果您需要其他信息,请发表评论.


编辑:我会尝试提供更多细节以回应ysth的问题 (警告,文本墙随后):

  • 读者/作者是一对一的关系,还是更复杂的东西?
  • 如果读者不再在那里或忙碌,你想对作家发生什么?
  • 反之亦然?
  • 您对预期用途有何其他信息?

在这一点上,我正在考虑采用三层方法,但我不确定每层中有多少个进程.我认为我需要在左侧有更多的进程而在右侧有更少的进程,但也许我应该在全面拥有相同的数字:

 .---------.          .----------.        .-------.
 | Request |  ----->  | Business | -----> | Data  |
 | Manager |  <-----  |  Logic   | <----- | Layer |
 `---------'          `----------'        `-------'

这些名称仍然是通用的,可能不会以这些形式进入实现.

请求管理器负责监听来自不同的接口的要求,例如Web请求和CLI(其中响应时间是很重要的)和电子邮件(其中响应时间是那么重要).它执行日志记录并管理对请求的响应(以适合请求类型的格式呈现).

它将有关请求的数据发送到业务逻辑,业务逻辑根据业务规则执行日志记录,授权等.

业务逻辑(如果需要)然后从数据层请求数据,数据层可以与(最常见的)内部MySQL数据库或我们团队控制之外的某些其他数据源(例如,我们组织的主LDAP服务器,或我们的DB2员工信息数据库等).这主要是一个包装器,它以统一的方式格式化数据,以便在业务逻辑中更容易处理.

然后,该信息将流回请求管理器以进行演示.

如果,当数据流向右侧时,阅读器正忙,对于交互式请求,我只想等待一段合适的时间,如果我在这段时间内无法访问,则返回超时错误(例如"稍后再试").对于非交互式请求(例如电子邮件),轮询系统可以简单地退出并在下次调用时再次尝试(可能每1-3分钟一次).

当数据向另一个方向流动时,不应有任何等待情况.如果其中一个进程在尝试返回左侧时已经死亡,我所能做的就是登录并退出.

无论如何,这是非常冗长的,因为我还处于早期设计阶段,我可能仍然有一些混乱的想法.我提到的一些内容可能与使用哪种IPC系统的问题相关.我对设计的其他建议持开放态度,但我试图将问题限制在范围内(例如,也许我应该考虑折叠到两层,这对IPC来说要简单得多).你的想法是什么?

perl ipc

7
推荐指数
2
解决办法
1024
查看次数

如何在Django视图中组合2个或更多查询集?

我正在尝试构建我正在构建的Django站点的搜索,并且在搜索中我正在搜索3种不同的模型.为了获得搜索结果列表的分页,我想使用通用的object_list视图来显示结果.但要做到这一点,我必须将3个查询集合并为一个.

我怎样才能做到这一点?我试过这个:

result_list = []            
page_list = Page.objects.filter(
    Q(title__icontains=cleaned_search_term) | 
    Q(body__icontains=cleaned_search_term))
article_list = Article.objects.filter(
    Q(title__icontains=cleaned_search_term) | 
    Q(body__icontains=cleaned_search_term) | 
    Q(tags__icontains=cleaned_search_term))
post_list = Post.objects.filter(
    Q(title__icontains=cleaned_search_term) | 
    Q(body__icontains=cleaned_search_term) | 
    Q(tags__icontains=cleaned_search_term))

for x in page_list:
    result_list.append(x)
for x in article_list:
    result_list.append(x)
for x in post_list:
    result_list.append(x)

return object_list(
    request, 
    queryset=result_list, 
    template_object_name='result',
    paginate_by=10, 
    extra_context={
        'search_term': search_term},
    template_name="search/result_list.html")
Run Code Online (Sandbox Code Playgroud)

但这不起作用当我尝试在通用视图中使用该列表时,我收到错误.该列表缺少clone属性.

有人知道如何合并三个列表page_list,article_listpost_list

django search django-queryset django-q

613
推荐指数
13
解决办法
24万
查看次数

Grails,使用withTransaction插入大量数据会导致OutOfMemoryError

我正在使用Grails 1.1 beta2.我需要将大量数据导入我的Grails应用程序.如果我反复实例化一个grails域类然后保存它,那么性能会慢得令人无法接受.例如,从电话簿导入人员:

for (each person in legacy phone book) {
    // Construct new Grails domain class from legacy phone book person
    Person person = new Person(...)
    person.save()
}
Run Code Online (Sandbox Code Playgroud)

事实证明这很痛苦.Grails邮件列表上的某人建议在事务中批量保存.所以现在我有:

List batch = new ArrayList()
for (each person in legacy phone book) {
    // Construct new Grails domain class from legacy phone book person
    Person person = new Person(...)
    batch.add(person)
    if (batch.size() > 500) {
        Person.withTransaction {
            for (Person p: batch)
                p.save()
            batch.clear()
        }
    }
}
// Save any remaining …
Run Code Online (Sandbox Code Playgroud)

java grails spring hibernate transactions

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

在Mac上学习C#?

单声道是唯一的路线,任何特定的视觉工作室,如你推荐的编辑?

c# macos

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

禁用seam的重定向过滤器

我正在做一个需要安静网址的接缝项目.我有一个映射到/ group/{group}/{locale}的视图.在那个页面上,我有一个所谓的消息列表.每条消息都有一个按钮,用于保存对消息的更改.这链接到这样的动作bean:

<h:commandButton type="submit" value="Save Changes" action="#{groupAction.update}" />
Run Code Online (Sandbox Code Playgroud)

每条消息都有一个锚点,因此/ group/{group}/{locale}#{id}可用于使浏览器转到该锚点.这就是我在POST后需要重定向的原因:

<page view-id="/group.xhtml">
  <rewrite pattern="/group/{group}/{locale}"/>

  <param name="group" value="#{groupAction.group}"/>
  <param name="locale" value="#{groupAction.locale}"/>

  <navigation from-action="#{groupAction.update}">
    <redirect view-id="/group.xhtml?group=#{group}&locale=#{locale}##{id}"/>
  </navigation>
</page>
Run Code Online (Sandbox Code Playgroud)

我还有以下重定向规则(UrlRewriteFilter)来获取正确的RESTful URL:

<outbound-rule>
  <from>^/group.xhtml\?group=([\.\w]+)&locale=([\.\w]+)\#([\.\w]+)\?cid=(\d*)$</from>
  <to type="temporary-redirect" last="true">/group/$1/$2#$3</to>
</outbound-rule>
Run Code Online (Sandbox Code Playgroud)

我在这里删除了对话.这已被测试过一部作品.然而,接缝仍会附加'?conversationId = {cid}'.所以有什么问题?好吧,想象一下像'/ group/{group}/{locale}#{id}?conversationId = {cid}'这样的网址.显然浏览器不喜欢这个,并且不会自动转到那个锚点.

我做了一些研究,发现我在缝文档中的问题:

29.1.4.2.使用重定向进行对话传播 此过滤器允许Seam跨浏览器重定向传播对话上下文.它拦截任何浏览器重定向,并添加一个指定Seam会话标识符的请求参数.重定向过滤器将默认处理所有请求,但也可以在components.xml中调整此行为:

<web:redirect-filter url-pattern="*.seam"/>
Run Code Online (Sandbox Code Playgroud)

我不需要重定向过滤器,我尝试在url-pattern中放置一些无效的东西来"禁用"过滤器.但是那没用.所以现在我的问题是:

如何在接缝中禁用重定向过滤器?

我找不到答案.seam文档讨论了在web.xml中禁用它,但我的尝试还没有成功.

java seam

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

Java Swing中是否有"Group Box"等价物?

尝试在Java/Swing中构建GUI应用程序.我主要习惯使用像VB这样的工具在Windows上"绘制"GUI(或者更确切地说,Gupta SQLWindows ......想知道有多少人知道那是什么;-)).

我在Swing中找不到相应的Group Box ...

使用组合框,您可以在几个相关的小部件周围放置一个方框(通常带有标题).一个例子是围绕几个单选按钮的组框(标题解释了单选按钮的内容,例如Group Box,标题为"Sex",带有"Male"和"Female"单选按钮).

我搜索了一下......我发现的唯一方法是添加子窗格,在子窗格上设置边框,然后将"组"中的所有窗口小部件添加到子窗格.有更优雅的方式吗?

java swing grouping

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

如何通过与RPC样式服务相对的REST服务添加新数据?

我还在学习REST,在我的测试中,想出了这个我不知道如何处理的场景.

我有一个使用Linq-to-Sql的现有示例WCF服务.它是一个非常简单的数据库,带有一个名为"Tasks"的表,它有四个字段:Id,Description,IsCompleted和EnteredDate.(我之所以提到这是因为我没有在服务本身中定义数据合约,它都来自Linq创建的Context.)

获取数据对于转换为REST来说是微不足道的......就像删除数据一样.但是,插入新记录似乎并不容易.

我的RPC样式的合同操作如下所示:

    [OperationContract]
    void AddTask(string description);
Run Code Online (Sandbox Code Playgroud)

不需要Id,IsCompleted和EnteredDate,因为服务实现如下所示:

    public void AddTask(string description)
    {
        TaskListLinqDataContext db = new TaskListLinqDataContext();
        Task task = new Task() 
           { Description = description, IsCompleted = false, 
             EntryDate = DateTime.Now };

        db.Tasks.InsertOnSubmit(task);
        db.SubmitChanges();
    }
Run Code Online (Sandbox Code Playgroud)

Id是一个标识,因此由数据库处理.

我的第一个想法是装饰这样的操作合同:

    [WebInvoke(Method="PUT", UriTemplate="tasks/{description}")]
    [OperationContract]
    void AddTask(string description);
Run Code Online (Sandbox Code Playgroud)

但我真的不知道如何让它发挥作用.当我尝试使用Fiddler添加它时,它返回结果411(需要长度).

这样做的正确方法是什么?我是否必须重新编写实现以接受表示新记录的整个XML文档?

c# rest wcf

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

有没有人在Windows 7上使用Visual Studio 2008?

有没有人已经尝试过这个,我需要注意哪些特殊情况?

visual-studio windows-7

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

如何在JS中翻译字符串

我有一个项目,我想为PHP部分翻译成多种语言我使用Zend Frameworks Zend_Translate和GetText.现在我想翻译JS部分.

我正在使用jQuery JS Framework,并希望听到您对JS文件的翻译的想法

javascript php jquery translation zend-framework

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