All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.joynr.statusmetrics.MessageWorkerStatus Maven / Gradle / Ivy

There is a newer version: 1.25.0
Show newest version
/*
 * #%L
 * %%
 * Copyright (C) 2018 BMW Car IT GmbH
 * %%
 * 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.
 * #L%
 */
package io.joynr.statusmetrics;

public class MessageWorkerStatus {
    /**
     * Whenever a message worker starts to process a message, this timestamp will be updated.
     * When the timespan between 'now' and the heartbeat timestamp becomes too large, an
     * error might have occurred which blocks the message worker's thread indefinitely.
     * Please note that the heartbeat also covers calls to user defined provider code.
     * Therefore a possible reason for an error could be that the provider code blocks
     * forever. The potential length of a provider operation must be taken into account
     * when evaluating this heartbeat value.
     *
     * Will not be updated, when the message worker is waiting for a new message.
     * @see isWaitingForMessage
     * @return Returns the heartbeat timestamp in unix time (ms since 01.01.1970)
     */
    private long heartbeatTimestamp;

    /**
     * Will be set to true, if the message queue is empty and the message worker is waiting
     * for a message to arrive. During this phase heartbeatTimestamp will not be updated.
     */
    private boolean isWaitingForMessage;

    public MessageWorkerStatus(long heartbeatTimestamp, boolean isWaitingForMessage) {
        this.heartbeatTimestamp = heartbeatTimestamp;
        this.isWaitingForMessage = isWaitingForMessage;
    }

    public long getHeartbeatTimestamp() {
        return heartbeatTimestamp;
    }

    public boolean isWaitingForMessage() {
        return isWaitingForMessage;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy