分享

一个具有TickerBehaviour的简单JADE Agent

 苦修 2009-04-21
  有时候某个单体Agent需要周期性的执行某项动作,比如某个Agent需要定时从互联网上抓取某些公开数据以填充自身知识库,或者对本地数据库进行操作和更新。对JADE来说,用TickerBehaviour很容易实现,下面是一个周期性操作数据库的简单例子。
package jade.capScoreAdopter;

import jade.core.*;
import jade.core.behaviours.*;
import java.sql.*;
import common.DataBaseConnection;

public class IndustryScoreAdopt extends Agent {

    protected void adoptScore(){
        Connection conn=null;
        CallableStatement proc=null;
        try{
            conn=DataBaseConnection.getConnection();
            proc=conn.prepareCall("{call P_WriteIndustryScore}");
            proc.close();
            conn.close();
        }
        catch (SQLException e)
        {
            System.out.println("调用存储过程出错!");
        }
        
       
    }

    protected void setup() {
        System.out.println("Agent " + getLocalName() + " started.");
       
        addBehaviour(new TickerBehaviour(this, 1000000) {// 1000秒执行一次
            protected void onTick() {
                adoptScore();
                System.out.println("Agent " + myAgent.getLocalName()
                        + "执行一次知识调整: tick=" + getTickCount());
            }
        });

    }
}
附:创建数据库连接类
package common;

import java.sql.*;

public class DataBaseConnection {

    public static Connection getConnection(){
        Connection conn=null;
//        连接数据库,sqlserver连接串
        String CLASSFORNAME="com.microsoft.jdbc.sqlserver.SQLServerDriver";
        String SERVANDDB="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=enterprisediagnose";
        String USER="sa";//用户和密码
        String PWD="sa";
        try{
            Class.forName(CLASSFORNAME);
            conn = java.sql.DriverManager.getConnection(SERVANDDB,USER,PWD);

        }catch(Exception e){
            e.printStackTrace();
            System.out.println("Error Trace in getConnection() : " + e.getMessage());
        }
        return conn;
       
    }
}

[from http://blog./u/17663/showart_378411.html]

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多