package com.alipay.bluewhale.core.task.executer; import java.util.Map; import org.apache.log4j.Logger; import backtype.storm.spout.ISpout; import com.alipay.bluewhale.core.stats.BaseTaskStatsRolling; import com.alipay.bluewhale.core.stats.SpoutTaskStatsRolling; import com.alipay.bluewhale.core.stats.Stats; import com.alipay.bluewhale.core.task.transfer.TupleInfo; /** * ��spout������һ��tuple���ڴ���ʧ�ܻ�ʱ��ʱ���ͨ���˷���ִ��spout��fail���� * @author yannian * */ public class FailSpoutMsg implements Runnable { private static Logger LOG = Logger.getLogger(FailSpoutMsg.class); private ISpout spout; private Object msg_id; private TupleInfo tuple; private Long time_delta; private BaseTaskStatsRolling task_stats; public FailSpoutMsg(ISpout _spout, Map _storm_conf, Object _msg_id, TupleInfo _tuple, Long _time_delta, BaseTaskStatsRolling _task_stats) { spout = _spout; msg_id = _msg_id; tuple = _tuple; time_delta = _time_delta; task_stats = _task_stats; } public void run() { // LOG.info("Failing message " + msg_id ); spout.fail(msg_id); if (time_delta != null) { Stats.spout_failed_tuple((SpoutTaskStatsRolling) task_stats,tuple.getStream(), time_delta); } } }