/* * Copyright 2008 Niels Peter Strandberg. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.github.Allogy.simplemq.config; import java.io.Serializable; /** * The MessageQueueConfig is used to configure a "in memory" {@link com.github.Allogy.simplemq.MessageQueue}. * For at "Persistent" MessageQueue, use {@link PersistentMessageQueueConfig} * 消息队列保存在内存时的配置项 * * @author Niels Peter Strandberg * @see com.github.Allogy.simplemq.MessageQueueService#getMessageQueue(String, MessageQueueConfig) * @see PersistentMessageQueueConfig */ public class MessageQueueConfig implements Serializable { /** * The default value for {@link #messageReviveTime} is 3600 sec (1 hour). */ public static final int DEFAULT_MSG_REVIVE_TIME = 60 * 60; /** * The default value for {@link #messageReviveTime} is 86.400 (24 hours). */ public static final int DEFAULT_MSG_REMOVE_TIME = 60 * 60 * 24; /** * The default value for {@link #deleteOldMessagesThreadDelay} is 3600 seconds (1 hour). */ public static final int DEFAULT_DELETE_THREAD_DELAY = 60 * 60; /** * The default value for {@link #reviveNonDeletedMessagsThreadDelay} is 1600 seconds (30 minutes). */ public static final int DEFAULT_REVIVE_THREAD_DELAY = 60 * 30; /** * The delay in seconds between checks by the background Thread that looks for messages * that has not been read and is to old using the 'messageRemoveTime'. */ private int deleteOldMessagesThreadDelay; /** * Indicate the delay in seconds between checks by the background Thread that looks for messages * that has been read but not deleted for 'messageReviveTime' ago. */ private int reviveNonDeletedMessagsThreadDelay; /** * The no of seconds the message should be in the queue before it is deleted. */ private int messageRemoveTime; /** * The no of seconds the message should be in the fetched queue before it is revieved. */ private int messageReviveTime; /** * Set to true results in events related to persistence to be logged, including any failures. The events are logged in a file ending with .app.log */ private boolean hsqldbapplog; /** * Constructs a new MessageQueueConfig with default values */ public MessageQueueConfig() { messageReviveTime = DEFAULT_MSG_REVIVE_TIME; messageRemoveTime = DEFAULT_MSG_REMOVE_TIME; reviveNonDeletedMessagsThreadDelay = DEFAULT_REVIVE_THREAD_DELAY; deleteOldMessagesThreadDelay = DEFAULT_DELETE_THREAD_DELAY; } public int getMessageReviveTime() { return messageReviveTime; } public int getMessageRemoveTime() { return messageRemoveTime; } public int getReviveNonDeletedMessagsThreadDelay() { return reviveNonDeletedMessagsThreadDelay; } public int getDeleteOldMessagesThreadDelay() { return deleteOldMessagesThreadDelay; } public MessageQueueConfig setMessageReviveTime(int messageReviveTime) { this.messageReviveTime = messageReviveTime; return this; } public MessageQueueConfig setMessageRemoveTime(int messageRemoveTime) { this.messageRemoveTime = messageRemoveTime; return this; } public MessageQueueConfig setDeleteOldMessagesThreadDelay(int deleteOldMessagesThreadDelay) { this.deleteOldMessagesThreadDelay = deleteOldMessagesThreadDelay; return this; } public MessageQueueConfig setReviveNonDeletedMessagsThreadDelay(int reviveNonDeletedMessagsThreadDelay) { this.reviveNonDeletedMessagsThreadDelay = reviveNonDeletedMessagsThreadDelay; return this; } public boolean getHsqldbapplog() { return hsqldbapplog; } public MessageQueueConfig setHsqldbapplog(boolean hsqldbapplog) { this.hsqldbapplog = hsqldbapplog; return this; } }