`
dengyin2000
  • 浏览: 1228633 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JPPF Task类中做到重复使用一个数据库连接池(或者其他重量的对象)

阅读更多
我们可能会在有一些JPPF task中需要连接到数据库, 但是我们又不能把connection作为JPPFTask的参数或者属性(因为Connection不能序列化). 这样的化我们就只能在JPPFTask里的run方法中去创建连接. 因为我们可能有很多JPPF节点.而且每个节点也可能会的接受到很多次task. 所以就会造成频繁的创建Connection. Mysql很快的就会撑不住了.

下面介绍一个类用来解决这种问题.

Class: org.jppf.node.NodeRunner

/**
 * Bootstrap class for lauching a JPPF node. The node class is dynamically loaded from a remote server.
 * @author Laurent Cohen
 */
public class NodeRunner
{
	//***************
	/**
	 * Set a persistent object with the specified key.
	 * @param key the key associated with the object's value.
	 * @param value the object to persist.
	 */
	public static synchronized void setPersistentData(Object key, Object value)
	{
		persistentData.put(key, value);
	}

	/**
	 * Get a persistent object given its key.
	 * @param key the key used to retrieve the persistent object.
	 * @return the value associated with the key.
	 */
	public static synchronized Object getPersistentData(Object key)
	{
		return persistentData.get(key);
	}

	/**
	 * Remove a persistent object.
	 * @param key the key associated with the object to remove.
	 * @return the value associated with the key, or null if the key was not found.
	 */
	public static synchronized Object removePersistentData(Object key)
	{
		return persistentData.remove(key);
	}

       //******************

}


NodeRunner有2个static方法可以保存你想要persist的object,还有把你保存的对象拿出来.

下面贴一段代码看看怎么使用这个类..


public class XXXXXXXXXTask extends JPPFTask{


    private static final String DATA_SOURCE_KEY = "dataSource";

    public void run() {

        DataSource dataSource = (DataSource) NodeRunner.getPersistentData(DATA_SOURCE_KEY);

        XXXXXService service = null;

        if (dataSource == null) {
            dataSource = new DriverManagerDataSource("com.mysql.jdbc.Driver", "jdbc:mysql://192.168.1.90:3306/xxxx?useUnicode=true&characterEncoding=UTF-8", "xxx", "xx");
            service = new XXXXXService();
            service.setDataSource(dataSource);
            NodeRunner.setPersistentData(DATA_SOURCE_KEY);

         /////  Process the task using the Service build from the dataSource./////////
        }

}


OK!

2
0
分享到:
评论

相关推荐

    JPPF helloword

    3. **定义任务**:创建一个继承自`org.jppf.task.JPPFTask`的类,实现任务的业务逻辑。任务通常会重写`run()`方法,这里进行实际的计算。 4. **提交任务**:通过`JPPFClient`实例的`submit()`方法将任务提交到网格...

    JPPF Server测应用扩展

    JPPF(Java Parallel Processing Framework)是一个开源的云计算和分布式计算框架,它允许开发者将计算任务分解成小单元,然后在分布式环境中并行处理。在JPPF中,服务器(Server)扮演着核心角色,负责管理和调度...

    jppf-user-guide

    - **编写JPPF任务**:详细讲解了如何创建一个基本的任务对象,包括任务类的定义及其属性。 - **创建和执行作业**: - **创建和填充作业**:解释了如何构建一个包含多个任务的作业,并添加必要的参数。 - **执行...

    JPPF安装和使用指南

    JPPF的一个重要特性是能够自动检测应用程序中的代码变更,并自动将其纳入执行流程中。这意味着当开发者对代码进行修改后,无需手动重新部署整个应用;JPPF会自动识别这些变更,并相应地更新运行中的任务。这种自动化...

    JPPF节点(node)测应用扩展

    JPPF(Java Parallel Processing Framework)是一个开源的分布式计算框架,它允许开发者将计算任务分布到多台计算机上,以实现高性能计算。JPPF通过节点(node)和服务器(server)来构建分布式计算环境,其中节点是...

    jppf-client-3.3.3.zip

    JPPF(Java Parallel Processing Framework)是一个高性能计算平台,它允许开发者将计算密集型任务分布到多核、多节点的计算环境中,以实现并行处理和负载均衡。JPPF客户端是JPPF框架的一部分,用于连接到JPPF服务器...

    JPPF的API(chm)

    Java Parallel Processing Framework(JPPF) 是一个优秀的开源的基于Java的并行处理框架。这是它的API手册,因为网站上面不提供apidoc的下载,所以我自己就做了个chm,方便大家使用!

    JPPF-3.3.2

    JPPF(Java Parallel Processing Foundation)是一个开源的Java分布式计算框架,版本3.3.2是其在2019年发布的一个稳定版本。该框架允许开发者将计算密集型任务分散到多个计算节点上,以实现并行处理和负载均衡,从而...

    基于JPPF的分布式并行检索系统研究.pdf

    在传统的串行检索与基于JPPF的并行检索的对比实验中,以数据库查询为例,研究者们发现,在数据规模较大的情况下,基于JPPF的并行检索方式相较于传统的串行检索方式在效率上有显著提升。这表明,分布式并行计算技术...

    Java Parallel Processing Framework用户手册

    Java Parallel Processing Framework(JPPF)是一个开源的Java框架,专为分布式并行计算而设计。它允许开发者利用多核处理器、集群以及云计算资源来执行大量计算任务,从而提高应用程序的性能和响应速度。JPPF的核心...

    jppf-admin-4.1.1.zip

    4. **版本控制**:4.1.1是JPPF的一个特定版本,可能包含了一些新功能、优化或修复了之前版本的bug,了解其变更日志有助于理解其改进之处。 5. **开源项目**:开源意味着源代码公开,允许社区成员查看、修改和分发...

    JPPF:开源网格计算解决方案

    JPPF客户端API的源代码common :其他模块共有的实用程序和类container :配置文件和脚本,以构建JPPF Docker映像并将其部署在集群环境中演示:JPPF功能的一些演示和测试,这些示例和测试可用作代码示例dotnet-bridge...

    基于JPPF的异构分布式MTH1虚拟筛选系统.pdf

    文章主要探讨了如何利用JPPF(Java Parallel Processing Framework)分布式并行框架,结合Autodock Vina软件,设计一个跨平台、兼容性良好的肿瘤药物虚拟筛选系统。这一系统的主要目标是加速从大规模药物分子数据库...

    网格计算框架JPPF1.5版

    网格计算框架JPPF,Java Parallel Processing Framework,即java并行处理框架.一个开放源码的网格计算框架,它可以在一个分布执行环境中 同时运行多个java应用.这是他的最新版1.5版

    jppf-tests:hashmade.frInfoQ 文章的源代码

    这里我们需要确保 JPPFExecutorService 提交的作业(每个 runnable/callable 有 1 个作业)没有在初始化 JPPFExecutorService 的同一个节点中排队(否则会出现死锁)。 每个可调用对象都生成介于 1 和随机限制之间...

    JPPF:开源网格计算解决方案-开源

    5. **JPPF库**:提供API和工具,供开发者在应用程序中使用JPPF。 **应用场景** JPPF适用于需要高效处理大量数据和复杂计算的场景,如大数据分析、高性能计算、机器学习、金融建模等。由于其开源性质,开发者可以...

    java面试题

    源码分析在面试中常常用于测试候选人的代码阅读和理解能力,而工具的熟练使用也是衡量一个开发者生产力的重要指标。 【压缩包子文件的文件名称列表】: 1. **JPPF.pdf**:JPPF(Java Parallel Processing Framework...

    java p2p技术

    Java P2P(对等网络)技术是一种分布式通信模型,其中每个节点既是客户端也是服务器,可以互相共享资源和服务。在Java中实现P2P技术,开发者需要掌握网络编程、多线程、数据传输协议等相关知识。以下是一些关键知识...

    兰州大学 云计算为科研加速.pdf

    云计算不仅降低了新药研发的成本,还极大缩短了研发周期,这对于科研机构来说是一个重大的突破。 首先,我们来理解云计算(Cloud Computing)概念。云计算是一种基于互联网的计算方式,它提供便捷的、按需的网络...

    Java下P2P应用程序开发方法

    3. 分布式计算:如JPPF的Job API,支持将任务分解并分配到网络中的其他节点执行。 五、实战应用 1. 文件共享:利用P2P技术可以创建类似BitTorrent的文件分发系统,减少服务器压力。 2. 视频会议:P2P网络可以实现多...

Global site tag (gtag.js) - Google Analytics