1

このクラスはポーリングを行い、新しい着信メッセージをチェックします。ポーリングと新しいデータのチェックを同時に達成するにはどうすればよいですか? 最後に、すべてのデータをポーリングにフィードバックする必要がありました

public void run() {
int seqId = 0;
    while(true) {
        List<KamMessage> list = null;
        try {
            list = fullPoll(seqId);
        } catch (Exception e1) {
            e1.printStackTrace();
        }
        if (!list.isEmpty()) {
            seqId = list.get(0).getSequence();
            incomingMessages.addAll(list);
            System.out.println("waiting 3 seconds");
            System.out.println("new incoming message");
        }
        try {
            Thread.sleep(3000);
            System.out.println("new incoming message");
        } catch (InterruptedException e) {
            e.printStackTrace();
        } 
    }
}
public List<KamMessage> fullPoll(int lastSeq) throws Exception {
Statement st = dbConnection.createStatement();
ResultSet rs = st.executeQuery("select * from msg_new_to_bde where ACTION =  804 and SEQ >" +
lastSeq + "order by SEQ DESC");      
    List<KamMessage> pojoCol = new ArrayList<KamMessage>();
    while (rs.next()) {
        KamMessage filedClass = convertRecordsetToPojo(rs);
        pojoCol.add(filedClass);
    }
    for (KamMessage pojoClass : pojoCol) {
        System.out.print(" " + pojoClass.getSequence());
        System.out.print(" " + pojoClass.getTableName());
        System.out.print(" " + pojoClass.getAction());
        System.out.print(" " + pojoClass.getKeyInfo1());
        System.out.print(" " + pojoClass.getKeyInfo2());
        System.out.println(" " + pojoClass.getEntryTime());
    }           
    return pojoCol;
} 

私の仕事は、データベースからテーブルをポーリングし、新しい受信メッセージもチェックすることです.最初にポーリングした後、新しい受信データを取得します.今私の問題は

1.メッセージを処理するために、この新しいデータを別のクラスに渡す方法。

2.そして、それをデータベースにフィードバックし、再度ポーリングを呼び出す方法。

3.並列でこれを達成する方法

4

0 に答える 0