±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁËActiveMQ
ÏîĿʵս£ºÌí¼ÓÉÌÆ·Í¬²½µ½Ë÷Òý¿â¡¢·¢ËÍÏûÏ¢¡¢½ÓÊÕÏûÏ¢µÈÏà¹ØÄÚÈÝ¡£
À´×ÔÓÚcsdn£¬,ÓÉ»ðÁú¹ûÈí¼þAnna±à¼¡¢ÍƼö¡£ |
|
1.Ìí¼ÓÉÌÆ·Í¬²½µ½Ë÷Òý¿â

2.·¢ËÍÏûÏ¢
manager-server¹¤³ÌÖз¢ËÍÏûÏ¢:µ±ÉÌÆ·Ìí¼ÓÍê³Éºó·¢ËÍÒ»¸öTextMessage£¬°üº¬Ò»¸öÉÌÆ·id¡£


@Override
public e3Result addItem (TbItemitem,Stringdesc){
//1¡¢Éú³ÉÉÌÆ·id
final long itemId= IDUtils.genItemId();
//2¡¢²¹È«TbItem¶ÔÏóµÄÊôÐÔ
item.setId(itemId);
//ÉÌÆ·×´Ì¬£¬1-Õý³££¬2-ϼܣ¬3-ɾ³ý
item.setStatus((byte)1);
Date date = new Date();
item.setCreated(date);
item.setUpdated(date);
//3¡¢ÏòÉÌÆ·±í²åÈëÊý¾Ý
itemMapper.insert(item);
//4¡¢´´½¨Ò»¸öTbItemDesc¶ÔÏó
TbItemDesc itemDesc= new TbItemDesc();
//5¡¢²¹È«TbItemDescµÄÊôÐÔ
itemDesc.setItemId(itemId);
itemDesc.setItemDesc(desc);
itemDesc.setCreated(date);
itemDesc.setUpdated(date);
//6¡¢ÏòÉÌÆ·ÃèÊö±í²åÈëÊý¾Ý
itemDescMapper.insert(itemDesc);
//·¢ËÍÒ»¸öÉÌÆ·Ìí¼ÓÏûÏ¢
imsTemplate.send (topicDestination, new MessageCreator(){
@Override
public Message createMessage (Session session)
throws JMSException {
TextMessagetextMessage = session.createTextMessage (itemId
+"");
return textMessage;
}
});
//7¡¢e3Result.ok()
return e3Result.ok();
}
|
3.½ÓÊÕÏûÏ¢
(1) ¹¦ÄÜ·ÖÎö£º ¢Ù ½ÓÊÕÏûÏ¢¡£ÐèÒª´´½¨MessageListener½Ó¿ÚµÄʵÏÖÀà¡£ ¢Ú È¡ÏûÏ¢£¬È¡ÉÌÆ·id¡£ ¢Û ¸ù¾ÝÉÌÆ·id²éѯÊý¾Ý¿â¡£ ¢Ü ´´½¨Ò»SolrInputDocument¶ÔÏó¡£ ¢Ý ʹÓÃSolrServer¶ÔÏóдÈëË÷Òý¿â¡£ ¢Þ ·µ»Ø³É¹¦£¬·µ»Øe3Result¡£
(2) Dao²ã
¢Ù ¸ù¾ÝÉÌÆ·id²éѯÉÌÆ·ÐÅÏ¢¡£

¢Ú Ó³ÉäÎļþ£º
<select id=
"getItemById" parameterType="long"
resultType="cn.e3mall.common.pojo.SearchItem">
SELECT
a.id,
a.title,
a.sell_point,
a.price,
a.image,
b.NAME category_name,
c.item_desc
FROM
tb_item a
JOIN tb_item_cat b ON a.cid = b.id
JOIN tb_item_desc c ON a.id=c.item_id
WHERE a.status =1
AND a.id=#{itemId}
lt;/select>
|
(3) Service²ã
²ÎÊý£ºÉÌÆ·ID
ÒµÎñÂß¼£º
¢Ù ¸ù¾ÝÉÌÆ·id²éѯÉÌÆ·ÐÅÏ¢¡£
¢Ú ´´½¨Ò»SolrInputDocument¶ÔÏó¡£
¢Û ʹÓÃSolrServer¶ÔÏóдÈëË÷Òý¿â¡£
¢Ü ·µ»Ø³É¹¦£¬·µ»Øe3Result¡£
·µ»ØÖµ£ºe3Result
public e3Result addDocument(long itemId) throws Exception { // 1¡¢¸ù¾ÝÉÌÆ·id²éѯÉÌÆ·ÐÅÏ¢¡£ SearchItem searchItem = searchItemMapper.getItemById(itemId); // 2¡¢´´½¨Ò»SolrInputDocument¶ÔÏó¡£
SolrInputDocument document = new SolrInputDocument();
// 3¡¢Ê¹ÓÃSolrServer¶ÔÏóдÈëË÷Òý¿â¡£
document.addField ("id", searchItem.getId());
document.addField ("item_title",
searchItem.getTitle());
document.addField ("item_sell_point",
searchItem.getSell_point());
document.addField ("item_price", searchItem.getPrice());
document.addField ("item_image",
searchItem.getImage());
document.addField ("item_category_name",
searchItem.getCategory_name());
document.addField ("item_desc",
searchItem.getItem_desc());
// 5¡¢ÏòË÷Òý¿âÖÐÌí¼ÓÎĵµ¡£ solrServer.add(document); solrServer.commit(); // 4¡¢·µ»Ø³É¹¦£¬·µ»Øe3Result¡£ return e3Result.ok(); }
|
(4) Listener
public class ItemChangeListener implements MessageListener {
@Autowired
private SearchItemServiceImpl searchItemServiceImpl;
@Override
public void onMessage (Message message) {
try {
TextMessage textMessage = null;
Long itemId = null;
//È¡ÉÌÆ·id
if (message instanceof TextMessage) {
textMessage = (TextMessage) message;
itemId = Long. parseLong(textMessage.getText());
}
//ÏòË÷Òý¿âÌí¼ÓÎĵµ
searchItemServiceImpl.addDocument(itemId);
} catch(Exception e){
e.printStackTrace();
}
}
}
|
(5) SpringÅäÖüàÌý

|