小编Bar*_*den的帖子

在Node.js中执行并行处理的最佳方法

我正在尝试编写一个小节点应用程序,它将搜索并解析文件系统上的大量文件.为了加快搜索速度,我们尝试使用某种map reduce.该计划将是以下简化方案:

  • Web请求带有搜索查询
  • 启动3个进程,每个进程分配1000个(不同的)文件
  • 一旦一个进程完成,它就会将它的结果"返回"回主线程
  • 一旦所有进程完成,主线程将继续返回组合结果作为JSON结果

我对此的问题是: 这在Node中是否可行?这样做的推荐方法是什么?

我一直在摆弄,但是请不要再使用Process了解示例:

发起者:

function Worker() { return child_process.fork("myProcess.js); }
for(var i = 0; i < require('os').cpus().length; i++){
        var process = new Worker();
        process.send(workItems.slice(i * itemsPerProcess, (i+1) * itemsPerProcess));
}
Run Code Online (Sandbox Code Playgroud)

myProcess.js

process.on('message', function(msg) {
    var valuesToReturn = [];
    // Do file reading here
    //How would I return valuesToReturn?
    process.exit(0);
}
Run Code Online (Sandbox Code Playgroud)

几个旁注:

  • 我知道进程数应该取决于服务器上CPU的数量
  • 我也知道文件系统中的速度限制.在我们将其移动到数据库或Lucene实例之前,请将其视为概念验证:-)

node.js

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

限制FreeMarker中的字符串长度

我正试图从FreeMarker中的字符串中获取子字符串.但是有两个方面需要考虑:

  1. 该字符串可以为null
  2. 字符串可以比最大字符串长度短

我做以下事情:

<#list landingpage1.popularItems as row>
    <li>
        <span class="minititle">
            <#assign minititle=(row.title!"")>
            <#if minititle?length &lt; 27>
                ${minititle}
            <#else>
                ${minititle?substring(0,26)} ...
            <#/if>
        </span>
    </li>
</#list>
Run Code Online (Sandbox Code Playgroud)

我收到一条freemarker错误说:

Failed to load templates: Encountered "</#list>" at line 144, column 65 in landingpage1.ftl.
Was expecting one of:
    <ATTEMPT> ...
    <IF> ...
    <LIST> ...
    <FOREACH> ...
    <SWITCH> ...
    <ASSIGN> ...
    <GLOBALASSIGN> ...
    <LOCALASSIGN> ...
    <INCLUDE> ...
    <IMPORT> ...
    <FUNCTION> ...
    <MACRO> ...
    <TRANSFORM> ...
    <VISIT> ...
    <STOP> ...
    <RETURN> ...
    <CALL> ...
    <SETTING> ...
    <COMPRESS> …
Run Code Online (Sandbox Code Playgroud)

html java freemarker jstl

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

在ExtJS中加载hasMany数据

我正在尝试hasMany在ExtJS4 中的关系中加载"嵌套"数据.我的模型看起来像这样:

Ext.define("Entrypage.model.Entrypage",{
    extend: "Ext.data.Model",
    fields: ['id','title','urlkey','text','picture','keywords', 'searchterms','description','critriamodus'],
    hasMany: {model: 'EntrypageCriterium',name:'brands'},
    proxy: {
        type: 'ajax',
        url:  '/Admin/extjson/entrypages',
        reader: {type:'json', root:'entrypages'}
    }
});
Run Code Online (Sandbox Code Playgroud)

而且EntrypageCriterium:

Ext.define("Entrypage.model.EntrypageCriterium",{
    extend: "Ext.data.Model",
    fields: ['id','type','title']
});
Run Code Online (Sandbox Code Playgroud)

我像这样加载我的数据:

Entrypage.load("nikon-coolpix",{success:function(record,options,success){
console.log(record);
}});
Run Code Online (Sandbox Code Playgroud)

它加载很好.Json返回这个:

{
    "success": true,        
"entrypages":[{
    "id":"1",
    "urlkey":"nikon-coolpix",
    "title":"Nikon Coolpix",
    "text":"Some blahblah about Nikon",
    "keywords":"nikon,coolpix,digitale,camera",
    "description":"Nikon Coolpix camera's",
    "picture":"Nikon Coolpix camera's",
    "searchterms":"nikon coolpix",
    "language":"nl",
    "brands":[
        {"id":27038,"title":"Nikon","type":"brand"}
    ]   
}]
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试record.brands()或类似的东西.它说不存在这样的方法.我认为在映射模型中的数据时会出现问题.

非常感谢任何帮助!

javascript json extjs extjs4

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

将Spring配置划分为多个项目

我们有很多项目使用相同的代码库(后端代码).只是前端往往是不同的.我们认为最好的方法是将后端和前端分成不同的项目:EngineProject_name

现在这些是Spring项目.因此,如果我们划分Spring配置,那么它们似乎也是合乎逻辑的: Database.xml,Services.xml将属于项目Engine.并且特定的Frontend.xml将属于Project_Name.要将它们链接起来,我需要一个通用的SpringBeans.xml来导入所有这些XML.

我尝试了以下目录结构:

发动机项目

  • 配置
    • 弹簧
      • Database.xml
      • 的services.xml

Project_Name项目

  • 配置
    • SpringBeans.xml
    • 弹簧
      • Frontend.xml

SpringBeans.xml的内容很简单:

    <import resource="spring/Database.xml"/>
    <import resource="spring/Services.xml"/>
    <import resource="spring/Frontend.xml"/> 
Run Code Online (Sandbox Code Playgroud)

我设置了Eclipse,因此Project_Name项目引用了Engine项目.当我启动它时,找到SpringBeans.xml,但是找不到Engine项目中的XML文件(FileNotFoundException).我还要注意,在将Engine和Frontend代码分成不同的项目之前,导入其他XML文件的原理就像魅力一样.

所以我的问题是:是否有可能在不同的项目中使不同的Spring配置很好地协同工作?

java eclipse spring maven-2

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

在Freemarker中使用Java属性

HI,

messages.properties我的应用程序中有一个典型的文件.我正在尝试使用Freemarker生成电子邮件.

Freemarker模板应生成a String,之后我将String通过电子邮件发送给用户.但是,我们需要多语言.所以Properties想到了.

我的属性文件如下所示:

mail.layout.contactus=Contacteer ons
mail.layout.greeting=Hoi
Run Code Online (Sandbox Code Playgroud)

在Java中,我输入我的Properties文件HashMap:

rootMap.put("lang", (mail.getLanguage().equals(Language.FRENCH) ? langFR : langNL));
Run Code Online (Sandbox Code Playgroud)

并尝试在FreeMarker中阅读它:

<p>${lang.mail.layout.greeting} ${user.firstname},</p>
Run Code Online (Sandbox Code Playgroud)

但得到以下异常:

freemarker.core.InvalidReferenceException: Expression lang.mail is undefined on line 10, column 116 in layout/email.ftl.
Run Code Online (Sandbox Code Playgroud)

奇怪的是,它只是说lang.mail而不是lang.mail.layout.greeting

编辑: 我尝试像这样定义我的键:

mail_layout_contactus=Contacteer ons
mail_layout_greeting=Hoi
Run Code Online (Sandbox Code Playgroud)

哪个确实有效

java multilingual freemarker

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

集合上的休眠查询过滤器

我想执行以下查询:

from Item i where i.categoryItems.catalogId = :catId
Run Code Online (Sandbox Code Playgroud)

然而,这会产生以下异常:非法尝试取消引用集合所以我用谷歌搜索,发现这个 Hibernate 论坛帖子https://forum.hibernate.org/viewtopic.php?p=2349920建议我执行以下操作:

from Item i, IN (i.categoryItems) WHERE i.catalogId = :catId
Run Code Online (Sandbox Code Playgroud)

这种工作,但有一个问题:它返回给我一个带有 Item 对象和 CategoryItem 对象的 Object 数组。我只对单个 Item 对象(列表)感兴趣

我对“项目”的映射:

<hibernate-mapping package="be.xx.xx.xx.xx.domain" default-access="field">
  <class name="Item" table="ITEM">  
    <id name="articleId" column="article_id" type="long">
        <generator class="assigned" />
    </id>
...
...
        <set name="categoryItems" table="CATEGORY_ITEM">
            <key column="item_id" />
            <one-to-many class="be.xx.xx.xx.xx.domain.CategoryItem" />
    </set>
</class>
</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)

有人有任何想法吗?

谢谢

java mysql hibernate hql

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