package com.test;

import com.jarvis.cache.CacheUpdateHandler;

import java.util.ArrayList;

/**
 * 类注释/描述
 *
 * @author hailin0@yeah.net
 * @date 2017-3-24 0:13
 */
public class CacheUpdateHandlerTest {
    public static void main(String[] args) {

        //调用示例
        CacheUpdateHandler
                .mark(CacheUpdateHandler.Operation.CLEAR)
                .batchs(
                        String.valueOf(1),//模拟调用有返回值的缓存方法
                        String.valueOf(2),//模拟调用有返回值的缓存方法
                        new CacheUpdateHandler.CacheBatchObj() {//模拟调用无返回值的缓存方法
                            public void exe() {
                                //模拟无返回值的缓存方法
                                new ArrayList<Object>().clear();
                                /*try {
                                    System.out.println(1);
                                    Thread.currentThread().sleep(5000l);
                                } catch (Exception e) {
                                    e.printStackTrace();
                                }*/
                            }
                        });


        //调用示例
        CacheUpdateHandler
                .mark(CacheUpdateHandler.Operation.UPDATE)
                .batchs(
                        String.valueOf(1),//模拟调用有返回值的缓存方法
                        String.valueOf(2),//模拟调用有返回值的缓存方法
                        new CacheUpdateHandler.CacheBatchObj() {//模拟调用无返回值的缓存方法
                            public void exe() {
                                //模拟无返回值的缓存方法
                                new ArrayList<Object>().clear();
                                //System.out.println(2);
                            }
                        });
    }
}

@@ -55,16 +55,58 @@
 Handler;
+%0Aimport com.jarvis.cache.annotation.Cache;
 %0A%0Aimport
@@ -1748,10 +1748,891 @@
 ;%0A    %7D%0A
+%0A
 %7D%0A
+%0Aclass User%7B%0A    int id;%0A    String name;%0A    int authorCode;%0A%7D%0A%0Aclass UserInfoDao%7B%0A%0A    @Cache(expire = 100,key = %22'user_id_'+#args%5B0%5D%22)%0A    public User getUserById(int id)%7B%0A        return new User();%0A    %7D%0A%0A    @Cache(expire = 100,key = %22'user_name_'+#args%5B0%5D%22)%0A    public User getUserByName(String name)%7B%0A        return new User();%0A    %7D%0A%0A    public void updateUser(User user)%7B%0A    %7D%0A%7D%0A%0Aclass UserAuthorService%7B%0A%0A    UserInfoDao userInfoDao;%0A%0A    public void updateUserAuthor(int id, int authorCode)%7B%0A        //update%0A        User user = null; //%E6%9F%A5%E8%AF%A2db  db.getUserId(int);%0A        user.authorCode = authorCode;%0A        userInfoDao.updateUser(user);%0A%0A        //clear%0A        CacheUpdateHandler%0A                .mark(CacheUpdateHandler.Operation.CLEAR)%0A                .batchs(userInfoDao.getUserById(user.id),%0A                        userInfoDao.getUserByName(user.name));%0A    %7D%0A%7D

add by cache batchs utils