我们可能会在有一些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!
分享到:
相关推荐
3. **定义任务**:创建一个继承自`org.jppf.task.JPPFTask`的类,实现任务的业务逻辑。任务通常会重写`run()`方法,这里进行实际的计算。 4. **提交任务**:通过`JPPFClient`实例的`submit()`方法将任务提交到网格...
JPPF(Java Parallel Processing Framework)是一个开源的云计算和分布式计算框架,它允许开发者将计算任务分解成小单元,然后在分布式环境中并行处理。在JPPF中,服务器(Server)扮演着核心角色,负责管理和调度...
- **编写JPPF任务**:详细讲解了如何创建一个基本的任务对象,包括任务类的定义及其属性。 - **创建和执行作业**: - **创建和填充作业**:解释了如何构建一个包含多个任务的作业,并添加必要的参数。 - **执行...
JPPF的一个重要特性是能够自动检测应用程序中的代码变更,并自动将其纳入执行流程中。这意味着当开发者对代码进行修改后,无需手动重新部署整个应用;JPPF会自动识别这些变更,并相应地更新运行中的任务。这种自动化...
JPPF(Java Parallel Processing Framework)是一个开源的分布式计算框架,它允许开发者将计算任务分布到多台计算机上,以实现高性能计算。JPPF通过节点(node)和服务器(server)来构建分布式计算环境,其中节点是...
JPPF(Java Parallel Processing Framework)是一个高性能计算平台,它允许开发者将计算密集型任务分布到多核、多节点的计算环境中,以实现并行处理和负载均衡。JPPF客户端是JPPF框架的一部分,用于连接到JPPF服务器...
Java Parallel Processing Framework(JPPF) 是一个优秀的开源的基于Java的并行处理框架。这是它的API手册,因为网站上面不提供apidoc的下载,所以我自己就做了个chm,方便大家使用!
JPPF(Java Parallel Processing Foundation)是一个开源的Java分布式计算框架,版本3.3.2是其在2019年发布的一个稳定版本。该框架允许开发者将计算密集型任务分散到多个计算节点上,以实现并行处理和负载均衡,从而...
在传统的串行检索与基于JPPF的并行检索的对比实验中,以数据库查询为例,研究者们发现,在数据规模较大的情况下,基于JPPF的并行检索方式相较于传统的串行检索方式在效率上有显著提升。这表明,分布式并行计算技术...
Java Parallel Processing Framework(JPPF)是一个开源的Java框架,专为分布式并行计算而设计。它允许开发者利用多核处理器、集群以及云计算资源来执行大量计算任务,从而提高应用程序的性能和响应速度。JPPF的核心...
4. **版本控制**:4.1.1是JPPF的一个特定版本,可能包含了一些新功能、优化或修复了之前版本的bug,了解其变更日志有助于理解其改进之处。 5. **开源项目**:开源意味着源代码公开,允许社区成员查看、修改和分发...
JPPF客户端API的源代码common :其他模块共有的实用程序和类container :配置文件和脚本,以构建JPPF Docker映像并将其部署在集群环境中演示:JPPF功能的一些演示和测试,这些示例和测试可用作代码示例dotnet-bridge...
文章主要探讨了如何利用JPPF(Java Parallel Processing Framework)分布式并行框架,结合Autodock Vina软件,设计一个跨平台、兼容性良好的肿瘤药物虚拟筛选系统。这一系统的主要目标是加速从大规模药物分子数据库...
网格计算框架JPPF,Java Parallel Processing Framework,即java并行处理框架.一个开放源码的网格计算框架,它可以在一个分布执行环境中 同时运行多个java应用.这是他的最新版1.5版
这里我们需要确保 JPPFExecutorService 提交的作业(每个 runnable/callable 有 1 个作业)没有在初始化 JPPFExecutorService 的同一个节点中排队(否则会出现死锁)。 每个可调用对象都生成介于 1 和随机限制之间...
5. **JPPF库**:提供API和工具,供开发者在应用程序中使用JPPF。 **应用场景** JPPF适用于需要高效处理大量数据和复杂计算的场景,如大数据分析、高性能计算、机器学习、金融建模等。由于其开源性质,开发者可以...
源码分析在面试中常常用于测试候选人的代码阅读和理解能力,而工具的熟练使用也是衡量一个开发者生产力的重要指标。 【压缩包子文件的文件名称列表】: 1. **JPPF.pdf**:JPPF(Java Parallel Processing Framework...
Java P2P(对等网络)技术是一种分布式通信模型,其中每个节点既是客户端也是服务器,可以互相共享资源和服务。在Java中实现P2P技术,开发者需要掌握网络编程、多线程、数据传输协议等相关知识。以下是一些关键知识...
云计算不仅降低了新药研发的成本,还极大缩短了研发周期,这对于科研机构来说是一个重大的突破。 首先,我们来理解云计算(Cloud Computing)概念。云计算是一种基于互联网的计算方式,它提供便捷的、按需的网络...
3. 分布式计算:如JPPF的Job API,支持将任务分解并分配到网络中的其他节点执行。 五、实战应用 1. 文件共享:利用P2P技术可以创建类似BitTorrent的文件分发系统,减少服务器压力。 2. 视频会议:P2P网络可以实现多...