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

xin.bluesky.leiothrix.server.interactive.worker.msghandler.GiveBackPartitionTaskHandler Maven / Gradle / Ivy

The newest version!
package xin.bluesky.leiothrix.server.interactive.worker.msghandler;

import com.alibaba.fastjson.JSON;
import io.netty.channel.ChannelHandlerContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import xin.bluesky.leiothrix.model.msg.WorkerMessage;
import xin.bluesky.leiothrix.model.task.partition.PartitionTask;
import xin.bluesky.leiothrix.server.cache.PartitionTaskContainer;
import xin.bluesky.leiothrix.server.interactive.worker.WorkerMessageHandler;
import xin.bluesky.leiothrix.server.storage.RangeStorage;

/**
 * @author 张轲
 */
public class GiveBackPartitionTaskHandler implements WorkerMessageHandler {

    private static final Logger logger = LoggerFactory.getLogger(GiveBackPartitionTaskHandler.class);

    @Override
    public void handle(ChannelHandlerContext ctx, WorkerMessage message) {
        PartitionTask partitionTask = JSON.parseObject(message.getData(), PartitionTask.class);

        String taskId = partitionTask.getTaskId();
        PartitionTask stored = RangeStorage.getPartitionTask(partitionTask.getTaskId(), partitionTask.getTableName(), partitionTask.getRangeName());
        PartitionTaskContainer.getInstance(taskId).offer(stored);

        logger.info("任务片[tableName={},rangeName={}被成功加入待分配队列,其startIndex={},endIndex={}",
                stored.getTableName(), stored.getRangeName(), stored.getRowStartIndex(), stored.getRowEndIndex());
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy