this.event_queue = new ConcurrentLinkedQueue<Runnable>();
int message_timeout_secs =StormUtils.parseInt(storm_conf.get(Config.TOPOLOGY_MESSAGE_TIMEOUT_SECS));
// �������ش���tuple�Ķ��У�����ȴ������tuple̫������spout����ͣ��TimeCacheMap�����tuple����ʱ�������tuple.fail��������֪ͨacker�ط���typle
this.pending = new TimeCacheMap(message_timeout_secs,new SpoutTimeCallBack<Object, Object>(event_queue, spout,storm_conf,task_stats));
// ����collector,ʵ�����ǵ���send_spout_msg
this.output_collector = new SpoutCollector(task_id,spout,task_stats,sendTargets,storm_conf,_transfer_fn,pending,topology_context,event_queue);
LOG.info("Opening spout " + component_id + ":" + task_id);