国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

利用Linux中的crontab實現分布式項目定時任務功能

2019-10-26 18:56:31
字體:
來源:轉載
供稿:網友

認識crond服務

    1、crond是Linux用來定期執行程序的命令。當安裝完成操作系統之后,默認便會啟動此任務調度命令。crond命令每分鍾會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。而Linux任務調度的工作主要分為以下兩類:

  ①系統執行的工作:系統周期性所要執行的工作,如備份系統數據、清理緩存

  ②個人執行的工作:某個用戶定期要做的工作,例如每隔10分鐘檢查郵件服務器是否有新信,這些工作可由每個用戶自行設置

 2、Crontab是UNIX系統下的定時任務觸發器,其使用者的權限記載在下列兩個文件中:

  ①/etc/cron.deny 該文件中所列的用戶不允許使用Crontab命令

  ②/etc/cron.allow 該文件中所列的用戶允許使用Crontab命令

 3、/var/spool/cron/ 是所有用戶的crontab文件

   4、啟動、停止、查看crond服務:

    ①啟動:service crond start

    ②停止:service crond stop

    ③查看:service crond status

@Controller@RequestMapping("/task/topic")public class TopicQuartzController {  protected Logger logger = LoggerFactory.getLogger(TopicQuartzController.class);  @Autowired  private LiveTopicService liveTopicService;  @RequestMapping("execute")  @ResponseBody  public CommonResult execute(HttpServletRequest request,HttpServletResponse response,String type){    long t1 = System.currentTimeMillis();    logger.error("topic定時器執行開始"+type);    CommonResult result = new CommonResult();    if(QlchatUtil.isEmpty(type)){      result.setMsg("參數為空");      result.setSuccess(false);      return result;    }    try {      switch (type) {        case "autoEndTopic":          this.autoEndTopic();          break;        case "oneWeek":          this.endTopicOneWeek();          break;        default:          break;      }      result.setSuccess(true);      result.setMsg("執行完成" + type);    } catch (Exception e) {      logger.error("topic定時器執行異常" + type, e);      result.setMsg("topic定時器執行異常" + type);      result.setSuccess(false);    }    long t2 = System.currentTimeMillis();    logger.error("topic定時器執行結束"+type+",耗時="+(t2 - t1) + "ms");    return result;  }  private void autoEndTopic(){    String sql = "SELECT id_ topicId FROM skg_live_topic lt WHERE lt.`status_` = 'beginning' AND lt.end_time_ IS NOT NULL AND lt.`end_time_` < NOW()";    JdbcTemplate jdbcTemplate = SpringHelper.getBean(JdbcTemplate.class);    List<Map<String, Object>> resultMap = jdbcTemplate.queryForList(sql);    for (Map<String, Object> map : resultMap) {      String topicId = String.valueOf(map.get("topicId"));      try {        LiveTopicPo liveTopicPo = liveTopicService.loadCache(topicId);        liveTopicService.endTopic(liveTopicPo, liveTopicPo.getCreateBy());      }catch (Exception e){        logger.error("autoEndTopic異常" + topicId, e);      }    }  }  /**   * 結束之前的沒有結束時間的話題,只跑一周   */  private void endTopicOneWeek(){    String sql = "SELECT id_ topicId FROM skg_live_topic lt WHERE lt.`status_` = 'beginning' AND lt.end_time_ IS NULL AND lt.start_time_ <= (NOW() - interval 48 hour)";    JdbcTemplate jdbcTemplate = SpringHelper.getBean(JdbcTemplate.class);    List<Map<String, Object>> resultMap = jdbcTemplate.queryForList(sql);    for (Map<String, Object> map : resultMap) {      String topicId = String.valueOf(map.get("topicId"));      try {        LiveTopicPo liveTopicPo = liveTopicService.loadCache(topicId);        liveTopicService.endTopic(liveTopicPo, liveTopicPo.getCreateBy());      }catch (Exception e){        logger.error("autoEndTopic異常" + topicId, e);      }    }  }}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 普兰县| 班戈县| 三都| 长春市| 宁武县| 乐陵市| 伊金霍洛旗| 洪江市| 新蔡县| 泉州市| 宜昌市| 揭西县| 房山区| 龙海市| 应用必备| 三江| 尉氏县| 馆陶县| 洪湖市| 龙川县| 腾冲县| 民乐县| 集安市| 万安县| 齐河县| 左权县| 佛教| 鲁甸县| 崇义县| 社会| 利津县| 阳信县| 沙河市| 广昌县| 康乐县| 清涧县| 宜章县| 鱼台县| 视频| 柘城县| 鄂州市|