ScheduledDemo.java 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package com.tsf.demo.mysql.schedule;
  2. import com.tsf.demo.mysql.dao.TsfCountDao;
  3. import com.tsf.demo.mysql.dao.TsfMybatisUserDao;
  4. import com.tsf.demo.mysql.domain.User;
  5. import org.slf4j.Logger;
  6. import org.slf4j.LoggerFactory;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.scheduling.annotation.Scheduled;
  9. import org.springframework.stereotype.Service;
  10. import com.tsf.demo.mysql.dao.TsfUserDao;
  11. import org.springframework.transaction.annotation.Transactional;
  12. @Service
  13. @Transactional(rollbackFor = Exception.class)
  14. public class ScheduledDemo {
  15. private static final Logger LOG = LoggerFactory.getLogger(ScheduledDemo.class);
  16. private static int index = 1;
  17. @Autowired
  18. private TsfUserDao userDao;
  19. @Autowired
  20. private TsfCountDao countDao;
  21. @Autowired
  22. private TsfMybatisUserDao mybatisUserDao;
  23. @Scheduled(fixedDelayString = "${consumer.auto.test.interval:10000}")
  24. public void doWork() throws InterruptedException, Exception {
  25. String username = "test-user-" + index;
  26. LOG.info("mysql-demo auto test, create user: [" + username + "]");
  27. LOG.info("mysql-demo auto test, save user into mysql: [" + username + "]");
  28. userDao.create(username);
  29. Thread.sleep(3000);
  30. String token = userDao.query(username);
  31. LOG.info("mysql-demo auto test, query user token from mysql: [" + token + "]");
  32. Thread.sleep(3000);
  33. LOG.info("mysql-demo auto test, save mybatis user into mysql: [" + username + "]");
  34. mybatisUserDao.insertUser(username, "token:" + username);
  35. Thread.sleep(3000);
  36. User user = mybatisUserDao.findUserByName(username);
  37. LOG.info("mysql-demo auto test, query mybatis user token from mysql: [" + user.getUser_token() + "]");
  38. Thread.sleep(3000);
  39. countDao.insert();
  40. LOG.info("mysql-demo auto test, insert count into mysql");
  41. index++;
  42. if (index > 9) index = 1;
  43. //测试事务时启用
  44. //throw new RuntimeException("test-exception");
  45. }
  46. }