001/*
002 * Copyright (c) 2009 The openGion Project.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 *     http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
013 * either express or implied. See the License for the specific language
014 * governing permissions and limitations under the License.
015 */
016package org.opengion.fukurou.queue;
017
018import javax.jms.MessageListener;
019
020/**
021 * キュー受信クラス用インタフェース
022 * キュー受信処理のインタフェースです。
023 * MQとSQSのメッセージ受信に対応しています。
024 *
025 * @og.group メッセージ連携
026 *
027 * @og.rev 5.10.15.2 (2019/09/20) 新規作成
028 *
029 * @version 5
030 * @author oota
031 * @since JDK7
032 */
033public interface QueueReceive {
034
035        /**
036         * 接続処理
037         * メッセージキューサーバに接続します。
038         *
039         *  @param jmsServer jsmサーバ
040         *  @param sqsAccessKey sqs用awsアクセスキー
041         *  @param sqsSecretKey sqs用awsシークレットキー
042         */
043        void connect(final String jmsServer, final String sqsAccessKey, final String sqsSecretKey);
044
045        /**
046         * 受信処理
047         * 受信処理を行います。
048         *
049         * @param queueName キュー名
050         * @return キュー情報格納クラス
051         */
052        QueueInfo receive(final String queueName);
053
054        /**
055         * リスナーの設定
056         * 指定キュー名に対して、
057         * メッセージキュー受信時に処理を行う、
058         * メッセージリスナーを設定します。
059         *
060         * @param queueName キュー名
061         * @param listener メッセージリスナー
062         */
063        void setListener(final String queueName, MessageListener listener);
064
065        /**
066         * リスナーの終了
067         * リスナーの終了処理を行います。
068         */
069        void closeListener();
070
071        /**
072         * クローズ処理
073         * MQ:受信リスナーの解除。
074         * SQS:クローズ処理はありません。
075         */
076        void close();
077
078        /**
079         * バッチフラグの設定
080         * バッチ処理として行う用の、
081         * バッチフラグを設定します。
082         *
083         * @param batchFlg バッチフラグ
084         */
085        void setBatchFlg(final Boolean batchFlg);
086}